我一直无法将以下相当直接的c#代码转换为vb.net 4.0,我理解其中有匿名代表。我还没有弄清楚。
_combo.DataBound += (sender, args) =>
{
var item = _combo.FindItemByValue(values[0].ToString());
if (item != null)
item.Selected = true;
};
我试过以下
_combo.DataBound += Function(sender, args)
Dim item = _combo.FindItemByValue(values(0).ToString())
If item IsNot Nothing Then
item.Selected = True
End If
End Function
但编译器抱怨DataBound不能直接调用,但必须使用RaiseEvents调用
答案 0 :(得分:2)
AddHandler _combo.DataBound,Function(sender,args)... End Function是我认为正确的语法。
答案 1 :(得分:1)
我想我明白了。
宣布一个事件
私人活动OnCombo_DataBound(ByVal值 如ArrayList)
使用RaiseEvent触发它
RaiseEvent OnCombo_DataBound(values)
为事件创建处理程序
Private Sub Combo_DataBound(ByVal values As System.Collections.ArrayList) Handles OnCombo_DataBound
Dim item = _combo.FindItemByValue(values(0).ToString())
If item IsNot Nothing Then
item.Selected = True
End If
End Sub