Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在vb.net中获取声明的事件_C#_Vb.net_Events_Delegates - Fatal编程技术网

C# 无法在vb.net中获取声明的事件

C# 无法在vb.net中获取声明的事件,c#,vb.net,events,delegates,C#,Vb.net,Events,Delegates,我已将以下c#代码转换为vb.net 问题无法获取一个类中声明的事件以在另一个对象中访问 详情如下: c代码如下所示: public Dropdown(CheckedComboBox ccbParent) { this.ccbParent = ccbParent; InitializeComponent(); this.ShowInTaskbar = false; this.cclb.ItemCheck += new Syste

我已将以下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) 

请帮我解决这个问题<代码>项目检查无法访问。

您的C代码的直接翻译如下:

Public Sub New(pCCBParent As CheckedComboBox)
    Me.ccbParent = pCCBParent
    InitializeComponent()
    Me.ShowInTaskbar = False
    AddHandler Me.cclb.ItemCheck, Me.cclb_ItemCheck
End Sub

Private Sub cclb_ItemCheck(sender As Object, e As ItemCheckEventArgs)
    RaiseEvent ccbParent.ItemCheck(sender, e)
End Sub

请注意这两种语言之间的差异——很少有东西不能逐字翻译。

我在下面的外侧声明了sub。并调用为
ccbParent.RaiseItemCheckEvent(发送方,e)


谢谢大家的评论。

您不能直接从派生类引发基类事件-请尝试以下操作:

Class CheckedComboBox
    Inherits ComboBox

    Public Event ItemCheck As Windows.Forms.ItemCheckEventHandler

    Protected Sub RaiseItemCheckEventFromDerivedClass(ByVal sender As Object, ByVal e As ItemCheckEventArgs)
        RaiseEvent ItemCheck(sender, e)
    End Sub
End Class

Class DropDown
    Inherits CheckedComboBox

    Private ccbParent As CheckedComboBox

    Private Sub New(ByVal ccbParent As CheckedComboBox)
        Me.ccbParent = ccbParent
        AddHandler ccbParent.ItemCheck, AddressOf cclb_ItemCheck
    End Sub

    Private Sub cclb_ItemCheck(ByVal sender As Object, ByVal e As ItemCheckEventArgs)
        RaiseItemCheckEventFromDerivedClass(sender, e)
    End Sub
End Class

请注意你的代码格式。现在到处都是,这让你的问题很难理解。你已经问了53个问题-你现在应该能够正确格式化一篇文章了。谢谢格式化了的人。我参与了交配,但不能。。。我很快就会得到帮助。请任何一个指导我是什么原因在上述问题。尝试在许多选项中提出事件示例,但在上述示例中不起作用。能够访问在
ccbParent
中声明的其他属性,但不能访问已声明的
ccbParent.ItemCheck
事件。构造函数参数与属性同名没有帮助。请看我的答案。请指导我为什么投反对票。。。所以,我可以进一步小心。这是我所面临的正确问题。现在,它在构造函数-
addhandler…
行中给出了错误,表示-
参数未指定为参数e…
此外,关于-ccbParent.ItemCheck没有找到对不起,我没有一个
CheckedComboBox
对象来测试它。是您自己创建的吗?请检查事件声明中包含的更新问题。它无法通过
ccbParent.Itemcheck
查找何时访问。您无法在派生类中引发基类事件(因此我认为原始C#示例也有缺陷)。
Class CheckedComboBox
    Inherits ComboBox

    Public Event ItemCheck As Windows.Forms.ItemCheckEventHandler

    Protected Sub RaiseItemCheckEventFromDerivedClass(ByVal sender As Object, ByVal e As ItemCheckEventArgs)
        RaiseEvent ItemCheck(sender, e)
    End Sub
End Class

Class DropDown
    Inherits CheckedComboBox

    Private ccbParent As CheckedComboBox

    Private Sub New(ByVal ccbParent As CheckedComboBox)
        Me.ccbParent = ccbParent
        AddHandler ccbParent.ItemCheck, AddressOf cclb_ItemCheck
    End Sub

    Private Sub cclb_ItemCheck(ByVal sender As Object, ByVal e As ItemCheckEventArgs)
        RaiseItemCheckEventFromDerivedClass(sender, e)
    End Sub
End Class