を押しながら:C#のループマウスダウンボタンは、私は、左マウス・ボタンを押している間、ループを使用したい
private void Loop_MouseDown(object sender, MouseEventArgs e)
{
while (e.Button==MouseButtons.Left)
{
//Loop
}
}
私はこのスレッドからソリューションを使用することはできません:私はRS232経由で送信していますので
C# how to loop while mouse button is held down をデータとそれ自身の間隔でタイマーを使用することは機能しません。また、このトピックのどの解決策も私のためには機能しません。 また、ここのようなものを動作することはできません。
if (e.Button == MouseButtons.Left)
{
//loop
}
このソリューションはまた、動作しません:
bool isLooping = false;
//on mouse down
private void myControl_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) {
isLooping = true;
runLoop();
}
//on mouse up event
private void myControl_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) {
isLooping = false;
}
//This is the main loop you care about. Put this in your application
//This should go in its own thread
void runLoop() {
while (isLooping) {
//do stuff
}
}
を実行ループを呼び出すと、スレッドをブロックし、そのためMouseUpイベントが発火することはないので。
正しく動作させるにはどうすればいいですか?
なぜこれが欲しいですか? – TJHeuvel
タイマーが動作しないのはなぜですか? – SLaks
APIを使用してマウスボタンの現在の状態を取得することを検討しましたか? –