グリッドビュー内で項目を上下に移動するためのボタンが2つあるWindowsアプリケーションがあります。ボタンは上下にスクロールするように動作するはずです
But the problem is:
私がキーを離したときにのみクリックイベントが呼び出されます。
What I need:
クリックイベントは、私が押したときに起動し、キーを押しながらIキーを離すと停止する必要がありますする必要があります。上下スクロールのようなものを意味します。
グリッドビュー内で項目を上下に移動するためのボタンが2つあるWindowsアプリケーションがあります。ボタンは上下にスクロールするように動作するはずです
But the problem is:
私がキーを離したときにのみクリックイベントが呼び出されます。
What I need:
クリックイベントは、私が押したときに起動し、キーを押しながらIキーを離すと停止する必要がありますする必要があります。上下スクロールのようなものを意味します。
ボタンのMouseDownイベントでボタン変更のMouseUpイベント
blnButtonPressed = false;
、これまであなたがこの2つの状態の間で何をしますか上のインスタンス
blnButtonPressed = ture;
のためのいくつかのクラスレベルのメンバーを変更....
クリックイベントは使用しないでください。 MouseDownおよびMouseUpイベントを使用します。
キープレスを処理する場合は、KeyDownイベントとKeyUpイベントを使用します。
しかし、私はキーが押されている間に仕事をしたい。 –
カスタムボタンを作成することができます。クリックするとクリック音が鳴ります。これは簡単な方法です:
public class PressableButton : Button
{
private Timer _timer = new Timer() { Interval = 10 };
public PressableButton()
{
_timer.Tick += new EventHandler(Timer_Tick);
}
private void Timer_Tick(object sender, EventArgs e)
{
OnClick(EventArgs.Empty);
}
protected override void OnMouseDown(MouseEventArgs mevent)
{
base.OnMouseDown(mevent);
_timer.Start();
}
protected override void OnMouseUp(MouseEventArgs mevent)
{
base.OnMouseUp(mevent);
_timer.Stop();
}
}
ボタンを押した後、10msごとにティックが開始されます(間隔を変更することができます)。タイマー・ティック・イベント・ハンドラでは、このボタンはClieckイベントを発生させます。
プロジェクトをコンパイルして、ツールボックスからPressedButtonをフォームにドラッグするだけで使用できます。
どこでタスクを実行する必要があります.. ..? –
タスクの新しいスレッドを開始することも、タスクのバックグラウンド作業を開始することもできます。これを理解するのに役立ちます。http://msdn.microsoft.com/en-us/library/cc221403(v=vs.95).aspx – Adil
ありがとうございました...私のために働いた... –