Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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中的SelectedIndexChanged_C#_Vb.net_Visual Studio 2010 - Fatal编程技术网

C# 等效于VB.NET中的SelectedIndexChanged

C# 等效于VB.NET中的SelectedIndexChanged,c#,vb.net,visual-studio-2010,C#,Vb.net,Visual Studio 2010,我正在尝试将一些代码从C#转换为VB.NET,以便在我的项目中使用它。然而,有一点我不能转换是当它涉及到我的组合框控件。在C#中,我可以使用 combobox.selectedindexchanged 然而,当我尝试在VB.NET中使用它时,它会说这是一个事件,我不能在Sub中使用它,但是当我的combobox的值发生变化时,我需要将它用于IF语句,是否有一个VB.NET等价物或任何其他我可以用来解决问题的东西?C: private void ComboBox1_SelectedIndexCh

我正在尝试将一些代码从C#转换为VB.NET,以便在我的项目中使用它。然而,有一点我不能转换是当它涉及到我的组合框控件。在C#中,我可以使用

combobox.selectedindexchanged
然而,当我尝试在VB.NET中使用它时,它会说这是一个事件,我不能在Sub中使用它,但是当我的combobox的值发生变化时,我需要将它用于IF语句,是否有一个VB.NET等价物或任何其他我可以用来解决问题的东西?

C:

private void ComboBox1_SelectedIndexChanged(object sender, 
        System.EventArgs e)
    {

// Code here

    }
*VB:*


C#的visual basic等价物:

object.event+=处理程序

(类似地,
-=
变为
RemoveHandler

的文档说明了如何在VB中组合
AddHandler
和lambdas,例如:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    AddHandler Button1.Click, 
        Async Sub(sender1, e1)
            ' ExampleMethodAsync returns a Task.
            Await ExampleMethodAsync()
            TextBox1.Text = vbCrLf & "Control returned to Button1_ Click."
        End Sub
End Sub

如果您正在动态创建
组合框
,并且希望在所选值发生更改时进行处理(根据您的注释),那么这就是方法:

Dim cb As New ComboBox()
Addhandler cb.SelectedValueChanged, AddressOf cbe_SelectedValueChanged
Addhandler cb.SelectedIndexChanged , AddressOf cbe_SelectedIndexChanged
....

Private Sub cbe_SelectedIndexChanged(sender As Object, e As System.EventArgs)

End Sub

Private Sub cbe_SelectedValueChanged(sender As Object, e As EventArgs)

End Sub
有关可用事件的更多信息:


SelectedIndexChanged是一个事件,而不是一个方法。当用户单击另一个项目时,会触发该命令。这不是一个VB的东西,它是一个Windows的东西。要手动设置selecteditem,请根据列表框和组合中的内容使用selecteditem或SelectedIndex或SelectedValue。对您尝试执行的操作的描述非常不清楚。你能提供一个更完整的例子吗?我正在我的代码中创建一个组合框,所以我无法通过设计视图访问它,所以如果我想在组合框的值改变时执行一段代码,我会使用什么代码?
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    AddHandler Button1.Click, 
        Async Sub(sender1, e1)
            ' ExampleMethodAsync returns a Task.
            Await ExampleMethodAsync()
            TextBox1.Text = vbCrLf & "Control returned to Button1_ Click."
        End Sub
End Sub
Dim cb As New ComboBox()
Addhandler cb.SelectedValueChanged, AddressOf cbe_SelectedValueChanged
Addhandler cb.SelectedIndexChanged , AddressOf cbe_SelectedIndexChanged
....

Private Sub cbe_SelectedIndexChanged(sender As Object, e As System.EventArgs)

End Sub

Private Sub cbe_SelectedValueChanged(sender As Object, e As EventArgs)

End Sub