C#Buttonダブルクリックイベントの実装
2443 ワード
C#Buttonのダブルクリックイベントをトリガーするために、MouseDownイベントをリロードし、マウスが押すたびの時間を記録し、2回のクリック時間が十分近ければ、ダブルクリック方法をトリガーすることができます.
C#ButtonはDoubleClickイベントがありますが、イベントリストには表示されません.Netもこのイベントを「スクリーン」に落として、ボタンをダブルクリックしても、このイベントはトリガーされません.
C#Buttonのダブルクリックイベントをトリガーするために、MouseDownイベントをリロードし、マウスが押すたびの時間を記録し、2回のクリック時間が十分近ければ、ダブルクリック方法をトリガーすることができます.
これもほぼダブルクリックの効果がありますが、私が採用している方法はこれと似ていて、Buttonクラスを継承し、ButtonクラスのClickイベントをリロードし、Clickイベントで2回クリックした時間を判断し、近ければダブルクリックイベントをトリガーします.次に、C#Buttonダブルクリックイベントのコードを示します.
これにより、作成したButtonExボタンにDoubleClickイベントを追加できます.
C#ButtonはDoubleClickイベントがありますが、イベントリストには表示されません.Netもこのイベントを「スクリーン」に落として、ボタンをダブルクリックしても、このイベントはトリガーされません.
C#Buttonのダブルクリックイベントをトリガーするために、MouseDownイベントをリロードし、マウスが押すたびの時間を記録し、2回のクリック時間が十分近ければ、ダブルクリック方法をトリガーすることができます.
これもほぼダブルクリックの効果がありますが、私が採用している方法はこれと似ていて、Buttonクラスを継承し、ButtonクラスのClickイベントをリロードし、Clickイベントで2回クリックした時間を判断し、近ければダブルクリックイベントをトリガーします.次に、C#Buttonダブルクリックイベントのコードを示します.
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
public class ButtonEx : Button
{
public new event EventHandler DoubleClick;
DateTime clickTime;
bool isClicked = false;
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
if (isClicked)
{
TimeSpan span = DateTime.Now - clickTime;
if (span.Milliseconds < SystemInformation.DoubleClickTime)
{
DoubleClick(this, e);
isClicked = false;
}
}
else
{
isClicked = true;
clickTime = DateTime.Now;
}
}
}
これにより、作成したButtonExボタンにDoubleClickイベントを追加できます.
ButtonEx btn=new ButtonEx();
btn.DoubleClick += new EventHandler(btn_DoubleClick);