一道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
如果换成=的话,每次就只会读取一个菜单,,,而+=的话,,就会一直读取下去,,不锻炼累加,把全部菜单显示出来...

一道C#小程序,各位高手请进!!
StringBuilder first = new StringBuilder();前面 StringBuilder 是声明,后面new StringBuilder()才是实例化 。由于之前已经对first 声明,故 first = new StringBuilder("goodbye"); 前面不需要加StringBuilder ,但此时的first 已经重新实例化了,跟之前的first已经无关。

编程高手请进!(C语言)
1.include <stdio.h> include<stdlib.h> include<ctype.h> main(){ int count;\/*猜数字的次数*\/ int number;\/*系统产生的随机数字*\/ int guess;\/*程序员输入数字*\/ char yes='Y';clrscr();printf("\\nNow let us play the game.\\n Guess the number:");while (toupper(yes)=='Y'...

C语言编程问题.请高手进(附源码)!!!HELP
printf("请输入菜名,按回车键结束\\n");scanf("%s",A);printf("\\n请输入拼音码(菜名首字母)&编码&价格{回车确定}\\n");scanf("%s%d%f",c,&d,&e);printf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f\\n是否正确?(正确请输入1,否则按任意键退出):",b,d,c,A,e);scan...

c高手请进,我一个礼拜都没解决!求救!!
你的程序我编绎都没通过,并且怎么说呢,不能说错,只能说很不好,(1)C中最后不要用goto语句,很容易出问题;(2)为什么要转换成浮点数呢,换成整数就可以了 (3)代码太不规范,也太多了,根据你的要求,根本用不了这么复杂,我自己写了个,你自己看看吧 include<stdio.h> include<string.h...

C语言编程问题,高手请进,急问!
??比如在1秒内没有按键,但不能保证下1秒还是没有按键,难道就一直的等下去?如果是在一些开发环境中,可以将判断按键是不是为回车写在OnKeyPress事件上。下面只给出一个输出按的什么键的程序 int getkey(){ int c;c = getchar();putchar(c);return c;} ...

c语言问题,高手请进谢谢!!!
3、此时前面有两个i等待运行,即i+i--->这两个i些时都是3;而不是一个2,一个3;4。再一个++i 此时i加1得到i,i=3+1=4;由上面的理解知道i此时已经是4,5、由上面四步得到一个i=4,i+i+i的式子,写入数据得到12 今天上课还在纠结这个问题,一看到你的问题突然想起来了!呵呵 ...

求C语言程序,高手请进...
\/*1.输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串 原字母 对应字母 A Z B Y C X D W X C Y B Z A*\/ \/*#include <stdio.h> void main(){ char str[80];char a;int i=0;s...

c#小程序 输出有问题 请高手指教
from tc_sysparameter where sysparameterid not in (select sysparameterid from ycscmdb..tc_sysparameter) order by sysparameterid 这样就生成了一堆我想要的插入语句了,再将生成的结果复制到*.sql当中,脚本即生成,耶~生成的结果就会是如下(就列两行意思一下,嘻嘻~~~):insert into TC_...

十万火急!高手请进!C#编程:编写一个应用程序用来输入的字符串进行加密...
给你个函数Replace,能把指定字符串中的指定子字符串替换为其它字符串,如:Replace("aaaaAAAAbbbbBBBB","A","*")结果就成了aaaa***bbbbBBBB了 具体你的问题就按要求分多次对输入的字串进行替换再输出的就行了。

c#高手进!!!下面这段程序是什么意思啊? new EventHandler这点不懂...
EventHandler是一个委托,也就是CheckedChanged事件的类型。它是一个.net内建的委托类型,表示将处理不包含事件数据的事件的方法。定义为public delegate void EventHandler(object sender, EventArgs e)。注册这个事件的函数(这里是radioButton_CheckedChanged)要符合这个委托的定义。所以radioButton_CheckedChanged...

相似回答
大家正在搜