Events 它叫什么?我想处理这个问题;事件“;CLR DLL生成的
因此,我是一名VisualBasic6开发人员,正在转向CLR,需要一个真正的新手问题的答案 在Visual Basic 6中,如果您有一个ActiveX控件,则可以引用该控件,然后有一条基本上是这样的语句: 公共WithEvents YourControl(强调“WithEvents”关键字) 在VisualBasic中,您将拥有一组用于该控件的事件处理程序函数。您只需从下拉列表中选择它们,就会生成一个空的处理程序 我正在寻找VS2008(Winform)中的等效版本。如何在VisualStudio2008 IDE中访问该功能?我在Winform项目中引用了CLR DLL项目。我只需要知道如何访问CLR DLL的函数/类Events 它叫什么?我想处理这个问题;事件“;CLR DLL生成的,events,dll,clr,Events,Dll,Clr,因此,我是一名VisualBasic6开发人员,正在转向CLR,需要一个真正的新手问题的答案 在Visual Basic 6中,如果您有一个ActiveX控件,则可以引用该控件,然后有一条基本上是这样的语句: 公共WithEvents YourControl(强调“WithEvents”关键字) 在VisualBasic中,您将拥有一组用于该控件的事件处理程序函数。您只需从下拉列表中选择它们,就会生成一个空的处理程序 我正在寻找VS2008(Winform)中的等效版本。如何在VisualStu
谢谢 活动广播员级别:
public event EventHandler MyEvent;
void OnMyEvent()
{
if (MyEvent != null)
MyEvent(this, EventArgs.Empty);
}
在事件接收器类:
obj.MyEvent += new EventHandler(obj_MyEvent);
void obj_MyEvent(object sender, EventArgs e)
{
// Do something as a result of the event here
}
语法在C#中,VB.NET在事件广播程序类中类似:
public event EventHandler MyEvent;
void OnMyEvent()
{
if (MyEvent != null)
MyEvent(this, EventArgs.Empty);
}
在事件接收器类:
obj.MyEvent += new EventHandler(obj_MyEvent);
void obj_MyEvent(object sender, EventArgs e)
{
// Do something as a result of the event here
}
语法是C#,VB.NET是类似的答案取决于您使用的语言 如果您使用的是Visual Basic.NET 语法实际上是相同的。在所有.NET语言中,事件都只是
委托
,它基本上是可以指向零个或多个具有相同签名的函数的函数指针
在VB.NET中处理事件时,WithEvents
关键字不是绝对必要的,但它确实为开发人员提供了使用传统VB样式事件处理程序的能力(设计师也是这样做的)。就像你熟悉的那样,可以这样做
Private WithEvents YourControl as Control
Private Sub ClickFunction(ByVal sender as Object, ByVal e as EventArgs) Handles YourControl.Click
'do things
End Sub
private Control YourControl;
private void ClickFunction(Object sender, EventArgs e)
{
// do stuff
}
// to attach, this goes somewhere in code
//...
YourControl.Click += ClickFunction;
//...
要处理对象上没有WithEvents
关键字的事件,请使用AddHandler
AddHandler YourControl.Click, AddressOf ClickFunction
Private Sub ClickFunction(ByVal sender as Object, ByVal e as EventArgs)
'do things
End Sub
如果您对在编辑器顶部的组合框中查看事件感兴趣,则只需使用WithEvents
关键字声明变量即可。只要在左边的菜单中找到您感兴趣的变量,事件就会出现在右边的菜单中
如果您使用的是C#.NET
C#中没有类似的功能。所有事件处理程序都必须显式附加,如下所示
Private WithEvents YourControl as Control
Private Sub ClickFunction(ByVal sender as Object, ByVal e as EventArgs) Handles YourControl.Click
'do things
End Sub
private Control YourControl;
private void ClickFunction(Object sender, EventArgs e)
{
// do stuff
}
// to attach, this goes somewhere in code
//...
YourControl.Click += ClickFunction;
//...
答案取决于你使用的语言 如果您使用的是Visual Basic.NET 语法实际上是相同的。在所有.NET语言中,事件都只是
委托
,它基本上是可以指向零个或多个具有相同签名的函数的函数指针
在VB.NET中处理事件时,WithEvents
关键字不是绝对必要的,但它确实为开发人员提供了使用传统VB样式事件处理程序的能力(设计师也是这样做的)。就像你熟悉的那样,可以这样做
Private WithEvents YourControl as Control
Private Sub ClickFunction(ByVal sender as Object, ByVal e as EventArgs) Handles YourControl.Click
'do things
End Sub
private Control YourControl;
private void ClickFunction(Object sender, EventArgs e)
{
// do stuff
}
// to attach, this goes somewhere in code
//...
YourControl.Click += ClickFunction;
//...
要处理对象上没有WithEvents
关键字的事件,请使用AddHandler
AddHandler YourControl.Click, AddressOf ClickFunction
Private Sub ClickFunction(ByVal sender as Object, ByVal e as EventArgs)
'do things
End Sub
如果您对在编辑器顶部的组合框中查看事件感兴趣,则只需使用WithEvents
关键字声明变量即可。只要在左边的菜单中找到您感兴趣的变量,事件就会出现在右边的菜单中
如果您使用的是C#.NET
C#中没有类似的功能。所有事件处理程序都必须显式附加,如下所示
Private WithEvents YourControl as Control
Private Sub ClickFunction(ByVal sender as Object, ByVal e as EventArgs) Handles YourControl.Click
'do things
End Sub
private Control YourControl;
private void ClickFunction(Object sender, EventArgs e)
{
// do stuff
}
// to attach, this goes somewhere in code
//...
YourControl.Click += ClickFunction;
//...
你的意思是“C#”而不是“CLR”?你的意思是“C#”而不是“CLR”?虽然事件声明和调用的语法类似,但添加委托却不是。AddHandler。。。地址。。。看起来和我很像,只是更详细。尽管如此,他还是要求“CLR”;也许这意味着ldftn。。。callvirt实例类::添加_MyEvent(类System.EventHandler)?;)虽然事件声明和调用的语法类似,但添加委托不是。AddHandler。。。地址。。。看起来和我很像,只是更详细。尽管如此,他还是要求“CLR”;也许这意味着ldftn。。。callvirt实例类::添加_MyEvent(类System.EventHandler)?;)