一道C#程序问题!高手请进!

private void Form1_Load(object sender, EventArgs e)
{
文件ToolStripMenuItem.DropDownItems.Clear();//清空菜单
ToolStripMenuItem menuitem1 = new ToolStripMenuItem("打开");//实例化打开菜单
文件ToolStripMenuItem.DropDownItems.Insert(0, menuitem1);//添加打开菜单
*************************************************************************************************
menuitem1.Click += new EventHandler(打开ToolStripMenuItem_Click);
**************************************************************************************************
ToolStripMenuItem menuitem2 = new ToolStripMenuItem("退出");//实例化退出菜单
文件ToolStripMenuItem.DropDownItems.Insert(1, menuitem2);//添加退出菜单
StreamReader sr = new StreamReader("Menu.ini");//实例化读取流对象
int i = this.文件ToolStripMenuItem.DropDownItems.Count - 1;//定义历史记录位置
我想问下:分隔线中menuitem1.Click += new EventHandler(打开ToolStripMenuItem_Click);这段代码的含义?为什么要用“+=”呢?而不是用“=”呢?越详细越好!谢谢!

这句话就是绑定一个事件 ,在asp.net中+=就是绑定一个东西,你的这句话就是menuitem1点击后会触发toolstripmenuitem的点击事件。学过事件和委托么?+=和=完全不是一个层次的 =是赋值 这里是绑定。追问

正在学事件和委托,就是不知道什么时候该用+=,什么时候该用=,就这方面,能简单的说几句吗?这位大侠!在此谢谢您!

追答

对于刚学事件和委托的,你需要去了解最简单的事件委托模型,就是一些大公司以前经常面试问道的,就是关于猫追老鼠的问题,这里就不详解 上百度。。。至于+=与 简单点举例,比如说你有2个按钮,button1和button2,当你在点击button1需要用到button2里的代码时候,这时候你就是用你的buttoon1.click+=new EventHandler(button2.click)
,这就是绑定button2的点击事件,而=,就是变量赋值这个很简单了吧

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-03
如上所说,这不是赋值,menuitem1.Click事件可以触发多个委托函数,用法有点类似于C语言的累加了,所以用+=,你可以继续在代码写下:
menuitem1.Click += new EventHandler(Click2);
menuitem1.Click += new EventHandler(Click3);
menuitem1.Click += new EventHandler(Click4);
EventHandler是委托方法,括号里的委托函数必须要符合委托方法的规范。
第2个回答  2013-09-03
如果换成=的话,每次就只会读取一个菜单,,,而+=的话,,就会一直读取下去,,不锻炼累加,把全部菜单显示出来...
相似回答
大家正在搜