我在C#中使用以下代码添加按钮
Button TextLabel = new Button(); //local variable
TextLabel.Location = new Point(0, 0);
TextLabel.Visible = true;
TextLabel.Enabled = true;
TextLabel.AutoSize = true;
TextLabel.Click += click;
this.Controls.Add(TextLabel);
它的点击处理程序是
protected void click(object o, EventArgs e)
{
MessageBox.Show("hello");
}
尽管Button是可见的,并且对鼠标悬停有响应,但是单击时没有任何反应。什么可能是错的或丢失的?如果我在一个独立的项目中编写相同的代码,它将起作用!!!!奇怪的。但为什么????
表单属性:(如果需要)
1.在任务栏中显示:false
2.无边距
3. 50%不透明
今天,我意识到,仅为控件注册click事件将不会使任何事件生效,除非该控件的父级(在我的情况下为表单)仍处于活动状态。
父控件将比其子控件更早收到事件通知。这是一个简单而明显的观察结果,但是如果不注意将产生不良影响。
那是我犯的错误,我在激活表单的事件中激活了另一个表单,因此其中的任何控件都没有收到鼠标单击之类的事件。
谈论“悬停效果正在起作用”,那么是的,即使表单处于非活动状态,悬停也可以起作用。
因此,我只删除了使另一种表单处于活动状态的代码行,现在一切正常。
private void Form1_Activated(object sender, EventArgs e)
{
//if (form2!=null) form2.BringToFront(); //commented this
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句