是的
VB.NET里面可以
但是C#就只能传递一默认的两个数据
这个数据是不和当前操作数据相关的(事实上这种方法VB.NET也有)
我就是想找和
VB   Public Event EventName(参数)
差不多或者相对应的C#的方法
大虾们请告知阿。

解决方案 »

  1.   

    VB中的Event 也不是随便的,除非你知己定义委托和事件
      

  2.   

    备注
    声明了事件后,使用 RaiseEvent 语句引发事件。一个典型事件的声明和引发可能如以下片断所示:Public Class EventSource
       ' Declare an event.
       Public Event LogonCompleted(ByVal UserName As String)
       Sub CauseEvent()
          ' Raise an event on successful logon.
          RaiseEvent LogonCompleted("AustinSteele")
       End Sub
    End Class
    注意   可以像声明过程参数那样声明事件参数,以下特例除外:事件不能具有命名参数或 Optional 参数。事件没有返回值。
    还有一个示例,也是MSDN上面的
    示例
    下面的示例使用事件在最快的 100 米赛跑演示期间计算秒数。代码阐释了所有与事件相关的方法、属性和语句,包括 RaiseEvent 语句。引发事件的类是事件源,而处理事件的方法是事件处理程序。事件源对它生成的事件可以具有多个处理程序。当类引发事件时,将在每一个被选择用来处理该对象实例的事件的类上引发该事件。本示例还使用一个窗体 (Form1),该窗体具有一个按钮 (Command1)、一个标签 (Label1) 和两个文本框(Text1 和 Text2)。当单击按钮时,第一个文本框显示“From Now”,第二个文本框开始计秒。当经过全部时间(9.84 秒)后,第一个文本框显示“Until Now”,第二个文本框显示“9.84”。Form1 的代码指定窗体的初始状态和最终状态。它还包含引发事件时执行的代码。若要使用此示例,请打开一个新的 Windows 窗体项目,向名为 form1 的主窗体中添加一个名为 Button1 的按钮、一个名为 Label1 的标签和名称分别为 TextBox1 和 TextBox2 的两个文本框。然后右击窗体并单击“查看代码”来打开代码编辑器。若要简化对 Timer 属性的访问,请将 Imports 语句添加到 Class Form1 语句的前面作为第一行代码。Imports Microsoft.VisualBasic.DateAndTime
    将 WithEvents 变量添加到 Form1 类的声明部分。Private WithEvents mText As TimerState
    将下面的代码添加到 Form1 的代码中。替换可能存在的任何重复过程,如 Form_Load 或 Button_Click。Private Sub Form1_Load(ByVal sender As Object, _
                           ByVal e As System.EventArgs) _
                           Handles MyBase.Load
       Button1.Text = "Click to Start Timer"
       TextBox1.Text = ""
       TextBox2.Text = ""
       Label1.Text = "The fastest 100 meters ever run took this long:"
       mText = New TimerState()
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
       TextBox1.Text = "From Now"
       TextBox1.Refresh()
       TextBox2.Text = "0"
       TextBox2.Refresh()
       mText.TimerTask(9.84)
    End SubPrivate Sub mText_ChangeText() Handles mText.ChangeText
       TextBox1.Text = "Until Now"
       TextBox2.Text = "9.84"
    End SubPrivate Sub mText_UpdateTime(ByVal Jump As Double) _
          Handles mText.UpdateTime
       TextBox2.Text = Format(Jump, "##0.00")
       Application.DoEvents()
    End SubClass TimerState
       Public Event UpdateTime(ByVal Jump As Double)
       Public Event ChangeText()
       Public Sub TimerTask(ByVal Duration As Double)
          Dim Start As Double
          Dim Second As Double
          Dim SoFar As Double
          Start = Timer
          SoFar = Start
          Do While Timer < Start + Duration
             If Timer - SoFar >= 0.1 Then
                SoFar = SoFar + 0.1
                RaiseEvent UpdateTime(Timer - Start)
             End If
          Loop
          RaiseEvent ChangeText()
       End Sub
    End Class
      

  3.   

    可以这样
    Public Event SendBack(object sender,EventArgs e)

      bb();
    }private void bb()

      //具体代码
    }public string getString()
    {
      bb();
    }
      

  4.   

    Public Event UpdateTime(ByVal Jump As Double)
       Public Event ChangeText()

     RaiseEvent ChangeText()
    就可以看出来,VB对Event可以随时定义,随时触发
    没那么多罗嗦的。
    C#难道真的必须要
    public event EventHandle EventName
    ………………?
      

  5.   

    楼上的
    没看明白
    实例在运行的时候如何向引用层递交数据?
    Public Event SendBack(object sender,EventArgs e)

      bb();

    bb这个函数是干什么用的?我看到传递的还是object sender,EventArgs e啊
    能否解释清楚一点
    谢了!
      

  6.   

    public delegate EventHandlerTest(obejct testValue); //定义委托
    public event EventHandlerTest Test; //定义事件public Do...()
    {
        if(Test!=null) Test(new object()); //触发自定义事件
    }