【发布时间】:2014-08-11 13:09:40
【问题描述】:
我已将以下 c# 代码转换为 vb.net。
问题是无法让一个类中的声明事件在另一个对象中访问。
详情请看以下;
c#代码如下:
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);
}
}
vb.net
Public Class CheckedComboBox
Inherits ComboBox
Public Event ItemCheck As ItemCheckEventHandler
....
End Class
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)
请帮助我如何解决它。 ItemCHeck 无法访问。
【问题讨论】:
-
请注意您的代码格式。目前到处都是,让您的问题真的难以阅读。您已经提出了 53 个问题 - 您现在应该可以正确格式化帖子了。
-
感谢格式化。我参与了格式化,但不能......很快就会看到帮助。请任何人指导我上述问题的原因是什么。在许多 optins 中尝试了引发事件示例,但在上面的示例中不起作用。能够访问在
ccbParent中声明的其他属性,但无法访问已声明的ccbParent.ItemCheck事件。 -
构造函数参数与属性同名并没有帮助。请看我的回答。
-
请指导我为什么它被否决...所以,我可以进一步照顾。这是我面临的正确问题。
标签: c# vb.net events delegates