菜单事件中的函数名如何用变量代替?
菜单事件中的函数名如何用变量代替?如
menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
改写成
string aa="menuItem1_Click";
menuItem1.Click += new System.EventHandler(aa);
用途:
想在循环中动态创建各个菜单项。
问题点数:20、回复次数:3Top
1 楼qinshihuang2222(秦始皇)回复于 2004-04-04 17:51:02 得分 0
顶Top
2 楼Smartdoggie(destination)回复于 2004-04-04 20:37:39 得分 10
可以参考一下这个示例:
using System;
delegate void MyDelegate(string s); //Note here
class MyClass
{
public static void Hello(string s)
{
Console.WriteLine(" Hello, {0}!", s);
}
public static void Goodbye(string s)
{
Console.WriteLine(" Goodbye, {0}!", s);
}
public static void Main()
{
MyDelegate a, b, c, d; //Here
// Create the delegate object a that references
// the method Hello:
a = new MyDelegate(Hello); //And here
// Create the delegate object b that references
// the method Goodbye:
b = new MyDelegate(Goodbye);
// The two delegates, a and b, are composed to form c:
c = a + b;
// Remove a from the composed delegate, leaving d,
// which calls only the method Goodbye:
d = c - a;
Console.WriteLine("Invoking delegate a:");
a("A");
Console.WriteLine("Invoking delegate b:");
b("B");
Console.WriteLine("Invoking delegate c:");
c("C");
Console.WriteLine("Invoking delegate d:");
d("D");
}
}
Top
3 楼zhzuo(秋枫)回复于 2004-04-04 22:32:24 得分 10
如上,使用delegate,
public void delegate MenuItemClickHandler(object sender, System.EventArgs e);
MenuItemClickHandler myClickeMethed = new MenuItemClickHandler(this.menuItem1_Click);
menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
修改为
menuItem1.Click += new System.EventHandler(myClickeMethed);
Top




