C# WinForm中通过代码添加的按钮点击事件无法触发的解决办法
问题原因与解决办法
嘿,这个问题我太熟了!你遇到的情况是典型的事件处理程序没有和按钮的Click事件绑定——简单说就是按钮不知道被点击后要去执行你写的dugme_Click方法。WinForm是事件驱动模型,必须显式告诉控件“当某个事件发生时,执行哪个方法”,你刚好漏掉了这关键一步。
方法1:在创建按钮的代码中直接绑定事件
在你添加按钮到窗体控件集合的代码后面,加上事件绑定的语句就行:
public Button dugme = new Button(); this.Controls.Add(dugme); dugme.Location = new Point(100, 300); dugme.Size = new Size(400, 50); dugme.Text = "Hesapla"; // 新增这一行,把点击方法绑定到按钮的Click事件 dugme.Click += dugme_Click;
方法2:在Form的构造函数或Load事件中绑定
如果你不想改动设计器里的代码,也可以在Form1的构造函数(注意要放在InitializeComponent()之后)或者Form1_Load事件里完成绑定:
构造函数示例:
public Form1() { InitializeComponent(); // 绑定点击事件 dugme.Click += dugme_Click; }
Load事件示例:
private void Form1_Load(object sender, EventArgs e) { dugme.Click += dugme_Click; }
为什么原来的代码没反应?
你只定义了dugme_Click这个处理方法,但没有通过+=操作符把它注册到按钮的Click事件列表里。只有当方法被注册到事件后,控件触发对应事件时,才会去调用这个处理程序。
这样修改后,点击按钮就能正常弹出你设置的MessageBox了,后续写的其他功能代码也能正常执行啦!
内容的提问来源于stack exchange,提问作者Kardok_Delikaya
相关产品推荐
相关产品推荐

