Ở VB.NET (không phải C#) ...Làm cách nào để bạn tạo sự kiện có thể hủy trong vb.net
Tôi muốn tạo sự kiện hơn người có thể hủy. Cũng giống như bạn có thể hủy sự kiện đóng của biểu mẫu winforms trong trường hợp đó biểu mẫu sẽ không đóng.
tôi đã thực hiện một lớp dẫn xuất từ EventArgs mà có một settable Hủy bỏ tài sản như sau:
Public Class AnnounceNavigateEventArgs
Inherits EventArgs
Private _cancel As Boolean = False
''' <summary>
''' Initializes a new instance of the AnnounceNavigateEventArgs class.
''' </summary>
Public Sub New(ByRef cancel As Boolean)
_cancel = cancel
End Sub
Public Property Cancel() As Boolean
Get
Return _cancel
End Get
Set(ByVal value As Boolean)
_cancel = value
End Set
End Property
End Class
Chú ý rằng tôi đang đi qua các lập luận hủy ByRef để các nhà xây dựng.
Trình nghe tôi đã thiết lập được đặt thuộc tính thành Hủy = Đúng. Tôi nghĩ ByRef có nghĩa là cả hai _cancel và hủy bỏ sẽ trỏ đến cùng một vị trí trên ngăn xếp và thiết lập đó _cancel = true do đó sẽ làm cho hủy = true. Nhưng đây không phải là hành vi mà tôi đang nhận được. _cancel trở thành true trong setter nhưng tôi đoán đối số cho hàm tạo vẫn sai.
Cách thích hợp để thực hiện việc này trong vb.net là gì?
Seth
Cảm ơn ... điều đó đã xảy ra. Seth –
Không cần phải kế thừa từ 'CancelEventArgs'; bạn có thể sử dụng nó trực tiếp. –
'Thông báo sự kiện công khai dưới dạng CancelEventHandler' –