public class AddRemoveListBox : WebControl, INamingContainer {
ListBox target;
public event System.EventHandler SelectedIndexChanged;    protected override void CreateChildControls()
 {
    target.AutoPostBack = true;            // Wire up events
            //
            target.SelectedIndexChanged += new EventHandler(Target_SelectedIndexChanged);
 }        private void Target_SelectedIndexChanged(Object sender, EventArgs e) {            if (null != SelectedIndexChanged)
                SelectedIndexChanged(sender, e);        }} 我转转成VB,主要问题出在 if (null != SelectedIndexChanged)上,
        Public Event SelectedIndexChanged As System.EventHandler        Private Sub Target_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)            If Not SelectedIndexChanged Is Nothing Then ‘//这里出错,提示事件不能直接调用,不知道相应的在VB里应该是怎么调用的
                RaiseEvent SelectedIndexChanged(sender, e)
            End If
        End Sub

解决方案 »

  1.   

    Not IsNothing(SelectedIndexChanged)试试
      

  2.   

    Private Sub Target_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles Target.SelectedIndexChanged            If Not SelectedIndexChanged Is Nothing Then ‘//这里出错,提示事件不能直接调用,不知道相应的在VB里应该是怎么调用的
                    RaiseEvent SelectedIndexChanged(sender, e)
                End If
            End Sub
      

  3.   

    VB.NET对控件的事件的操作缺省是通过Handles [Object].[Event]来实现的,不是C#的那种EventHandler+机制。
      

  4.   

    AddRemoveListBox.SelectedIndexChanged is nothing
      

  5.   

    你的意思是说:
     AddHandler target.SelectedIndexChanged, AddressOf Target_SelectedIndexChanged这样也就行了,不在需要Handles  Target.SelectedIndexChanged  Private Sub Target_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
                If Not SelectedIndexChanged Is Nothing Then
                    RaiseEvent SelectedIndexChanged(sender, e)
                End If
            End Sub 'Targrickjelly2004(rick & jelly) 
    你的我试了,好像也行