您好我将以下c#代码转换为vb.net。
public Dropdown(CheckedComboBox ccbParent)
{
this.ccbParent = ccbParent;
InitializeComponent();
this.ShowInTaskbar = false;
this.cclb.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.cclb_ItemCheck);
}
private void cclb_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (ccbParent.ItemCheck != null)
{
ccbParent.ItemCheck(sender, e);
}
}
Visual Basic
Private cclb As CustomCheckedListBox
Public Event ItemCheck As Windows.Forms.ItemCheckEventHandler
Public Sub New(ByVal ccbParent As PlexisCheckedComboBox)
MyBase.New()
Me.ccbParent = ccbParent
InitializeComponent()
Me.ShowInTaskbar = False
AddHandler cclb.ItemCheck, AddressOf cclb_ItemCheck
End Sub
Private Sub cclb_ItemCheck(ByVal sender As Object, ByVal e As
Windows.Forms.ItemCheckEventArgs)
If (Not (ccbParent.ItemCheck) Is Nothing) Then
ccbParent.ItemCheck(sender, e)
End If
End Sub
在转换后的vb.net代码中,我在以下行中获取错误 “”
If (Not (ccbParent.ItemCheck) Is Nothing) Then
ccbParent.ItemCheck(sender, e)
请帮我解决一下。
答案 0 :(得分:0)
好吧,正如错误消息告诉您的那样,您必须使用RaiseEvent
关键字来举起活动。
但是即使这样它也行不通,因为你不能在事件被声明的类之外引发事件(与C#相反,嵌套类可以引发外部类的事件)。
因此,要解决此问题,请向名为OnItemCheck
的外部类添加一个新方法,该方法会引发ItemCheck
事件,并在cclb_ItemCheck
中调用该方法,而不是尝试直接引发事件。