一行代码看不明白,老师进来讲讲,谢谢了。

wycfgq 2010-01-07 10:20:47
一行代码看不明白,老师进来讲讲,谢谢了。
就是这一句:

newButton.Click += new EventHandler(my_Click); //这行代码什么意思?+=是什么?
事件为何可以相加呢?


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace zghform
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
((Button)sender).Text = "这是按钮!";
Button newButton = new Button();
newButton.Text = "新 按钮!";
newButton.Click += new EventHandler(my_Click); //这行代码什么意思?+=是什么?
Controls.Add(newButton);
}

private void my_Click(object sender, System.EventArgs e)
{
((Button)sender).Text = "新名称!";
}
}
}

...全文
212 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
HELLOWORDC 2010-01-08
  • 打赏
  • 举报
回复
顶2楼!“给动态添加的控件......”
cuike519 2010-01-08
  • 打赏
  • 举报
回复
事件委托都是多播委托,你可以通过+=来为这个事件连接一个事件处理函数。

当触发这个事件的时候就会调用你的这个方法,当然你可以连接很多函数,当触发这个事件的时候所有被连接的函数都会被执行。
OROCHIORI 2010-01-08
  • 打赏
  • 举报
回复
学习
wbpmrck 2010-01-08
  • 打赏
  • 举报
回复
理解程序需要想象力~~
yongningzh 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bingo_ 的回复:]
注册事件
Click是newButton的一个事件
EventHandler是这个事件的委托

你去了解下c#里的委托与事件就知道了
[/Quote]
agree
元宇宙之家 2010-01-08
  • 打赏
  • 举报
回复
给按钮newButton增加单击事件(Click)处理函数,函数是private void my_Click(object sender, System.EventArgs e)。
代码是每单击一次button1,就在窗体上增加一个Button。但这么写Button会重叠。
hyfzz123 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bingo_ 的回复:]
注册事件
Click是newButton的一个事件
EventHandler是这个事件的委托

你去了解下c#里的委托与事件就知道了
[/Quote]
up
骆驼行者 2010-01-08
  • 打赏
  • 举报
回复
恩 就是上面的解释了
添加事件方法
quansui 2010-01-08
  • 打赏
  • 举报
回复
给动态添加的控件newButton 添加单击事件
newButton.Click += new EventHandler(my_Click);
nixiang12 2010-01-08
  • 打赏
  • 举报
回复
你看你的工程 Form1.cs窗体 节点下有个
Form1.Designer.cs文件
打开他看
找到
InitializeComponent()方法
你肯定能看到
this.button1.Click += new System.EventHandler(this.button1_Click);
的代码

说明就是给button1 加了一个Click事件

你在button1的Click事件写入了一个新建一个新的button 并且给它加Click事件

楼上几个说的都很正确
nixiang12 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
给动态添加的控件newButton 添加单击事件
newButton.Click += new EventHandler(my_Click); 
[/Quote]

正解..
你如果用过 vs 2003 就会看到这些代码

vs 2005 开始代码文件才分成2个
chongyb 2010-01-08
  • 打赏
  • 举报
回复
学习了!
flyerwing 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
click是事件,+=用于订阅事件处理方法
Eventhandler是一个delegate(代表)类型
public  delegate  void  EventHandler(object  sender,EventArgs  e);   
[/Quote]
button类中的事件 基于EventHandler委托定义的事件Click
Eventhandler是一个delegate(代表)类型类似于函数指针吧
button1.Click+=new EventHandler(button1_Click);给BUTTON1订阅了此事件
button1.Click-=new EventHandler(button1_Click);给BUTTON1取消了此事件的订阅
好象就是这个





studyuid 2010-01-08
  • 打赏
  • 举报
回复
```````````拿分走人不留痕
kensouterry 2010-01-07
  • 打赏
  • 举报
回复
顶一下6楼的
liuy052 2010-01-07
  • 打赏
  • 举报
回复
响应事件.
yzk2008 2010-01-07
  • 打赏
  • 举报
回复
这是事件的注册,my_Click就是此事件注册指定的方法,当触发该事件是就会执行my_Click方法,如果不对事件进行注册,事件就不能响应
xray2005 2010-01-07
  • 打赏
  • 举报
回复
给动态添加的控件newButton 添加单击事件
newButton.Click += new EventHandler(my_Click);

也就是,点击的时候去执行my_Click方法里面的代码
ProjectDD 2010-01-07
  • 打赏
  • 举报
回复
newButton.Click += new EventHandler(my_Click); //这行代码什么意思?+=是什么?
---------------
+=是把事件连接到方法的意思, 事件是一个“特殊的委托实例”事件中的委托成员是不可访问的只能
应用于+=或-=表达式中,表示 这个事件 所联接到的响应方法。

一个事件 在定义类中(这个事件 的出生地)中,会被“触发”而那时他并不会被执行,只有等到,包含
这个事件定义类中的某个方法被+=以后才会被执行。
wuyq11 2010-01-07
  • 打赏
  • 举报
回复
click是事件,+=用于订阅事件处理方法
Eventhandler是一个delegate(代表)类型
public delegate void EventHandler(object sender,EventArgs e);
  
加载更多回复(2)

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧