c#自动生成的控件怎么添加双击事件,是双击事件不是单击   i++;     Button b =

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#自动生成的控件怎么添加双击事件,是双击事件不是单击   i++;     Button b =相关的知识,希望对你有一定的参考价值。

c#自动生成的控件怎么添加双击事件,是双击事件不是单击
  i++;
    Button b = new Button();//创建一个新的按钮
    b.Name="b"+i;//这是我用来区别各个按钮的办法
    System.Drawing.Point p = new Point(12,13+i*30);//创建一个坐标,用来给新的按钮定位
    b.Location = p;//把按钮的位置与刚创建的坐标绑定在一起

    panel1.Controls.Add(b);//向panel中添加此按钮
    b.Click += new System.EventHandler(btn_click);//将按钮的方法绑定到按钮的单击事件中b.Click
新建的按钮添加对应的事件方法btn_click():

   private void btn_click(object sender, System.EventArgs e)
  
    Button b1 = (Button)sender;//将触发此事件的对象转换为该Button对象

     MessageBox.Show(""+b1.Name);
  

Button按钮是没有双击事件(DoubleClick)的。
button1.DoubleClick+=new EventHandler(button1_DoubleClick);使用这种方法在双击的时候并不会触发双击事件,而是会执行两次单击事件。

建议使用Label,在属性中选事件(像闪电的),双击Click和DoubleClick即可。可以改变image属性使它看起来像一个按钮。

如果一定要用Button按钮的话,可以添加一个Timer,这里起名button1和timer1。分别双击button1和timer1添加button1_Click和timer1_Tick。设置timer1的Interval为100(就是0.1秒)。
单击Button时如果Timer的Enabled为False,就启动Timer,否则关闭Timer,并执行双击操作。代码如下:
private void button1_Click(object sender, EventArgs e)

if(timer1.Enabled)

timer1.Enabled = false;
//以下为双击事件内容

//双击事件结束

else

Timer1.Enabled = True;


Timer中启动时记录当前时间,如果当前时间距离上次记录时间超过1秒就关闭Timer并执行单击事件。代码如下:
private void timer1_Tick(object sender, EventArgs e)

if (timer1.Tag == "")

timer1.Tag = DateTime.Now.ToString();

else

if ((DateTime.Now - Convert.ToDateTime(timer1.Tag)).TotalSeconds > 0.5)

timer1.Tag = "";
timer1.Enabled = false;
//以下为单击事件内容

//单击事件结束


参考技术A b.DoubleClike追答

单词错了,能看懂就是了

双击事件

没有的话就是MouseDoubleClik,我手机码字,见谅

以上是关于c#自动生成的控件怎么添加双击事件,是双击事件不是单击   i++;     Button b =的主要内容,如果未能解决你的问题,请参考以下文章

C#中如何添加menuitem的Click事件

c#双击 dataGridView 会触发CellContentClick 怎么点击dataGridView会触发CellClick事件

如何区分鼠标的单击和双击事件

如何将WPF中的命令绑定到控件的双击事件处理程序

怎样在window窗口中添加事件 c#

避免 C# TreeView NodeMouseDoubleClick 双击事件的节点错位的错误行为