Cách xử lý hộp điều khiển biểu mẫu cho sự kiện di chuột trong VB.NET

lập trình


Tôi đã viết mã xử lý hộp điều khiển cho Form1 trong VB.Net bằng cách sử dụng các sự kiện di chuột và rời chuột nhưng nó không hoạt động. Có ai có thể cho biết lỗi là gì không?

Những gì tôi đã thử:

Private Sub Form1_MouseLeave(sender As Object, e As EventArgs) Handles MyBase.MouseLeave
        Me.ControlBox = False
    End Sub

    Private Sub Form1_MouseHover(sender As Object, e As EventArgs) Handles MyBase.MouseHover
        Me.ControlBox = True
    End Sub

Giải pháp 1

Đối với tôi mã này đang hoạt động tốt.
Tôi cho rằng bạn cũng có một số Điều khiển trên Biểu mẫu của mình. Nếu Chuột di chuột qua một trong số này, nó sẽ rời khỏi Biểu mẫu.
Nếu bạn muốn họ cũng hiển thị Hộp điều khiển của bạn, bạn phải thêm từng Sự kiện di chuột từ Điều khiển này vào Phương thức Form1_MouseHover.
Có lẽ bạn cũng nên xem liệu Form1_MouseLeave có thực sự phát hiện Sự kiện nghỉ phép hay không.
Tôi khuyên bạn nên tạo một phương thức “biết” rằng Chuột ở trên Biểu mẫu hoặc một trong các điều khiển của chúng …

Đây là mẫu mã dễ dàng hoạt động với Bộ hẹn giờ thuộc Biểu mẫu:

VB
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
     Dim p As Point = PointToClient(MousePosition)
      If (p.X >= 0) And (p.X < Width) And (p.Y >= 0) And (p.Y < Height) Then CheckBox1.Checked = True Else CheckBox1.Checked = False
 End Sub

Tôi đã đặt cho Bộ hẹn giờ một Khoảng thời gian nhỏ (100 mili giây) – điều duy nhất bạn nên biết là Tiêu đề biểu mẫu và Đường viền không thuộc về Định nghĩa kích thước từ Biểu mẫu. Kích thước của chúng phụ thuộc vào FormBorderStyle đã chọn. Với điều này bạn cũng phải tính toán …

コメント

タイトルとURLをコピーしました