私のWinFormは、ユーザーがクリックしてヘルプを呼び出すことができる単なる40x40ボタンです。ボタンをクリックしてドラッグして別の部分に移動させる場合を除いて、すべては機能します。マウスの左ボタンを離した後にボタンがアクティブになります(「クリック」を完了します)。その場合、mousedown
イベントが発生している間にウィンドウが移動したかどうかを確認して、mouseclick
イベントを停止する方法はありますか?あなたがサブクラス化ボタンを使用できる場合私はWinFormsの「ボタン」を持っていますが、ボタンをアクティブにしないでクリックしてドラッグするにはどうすればいいですか?
private bool ignoreClick = false;
private void btn_MouseMove(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
ignoreClick = true;
btn.Left = e.X + btn.Left - mouseDownLocation.X;
btn.Top = e.Y + btn.Top - mouseDownLocation.Y;
}
}
private void btn_MouseUp(object sender, MouseEventArgs e) {
ignoreClick = false;
}
private void btn_Click(object sender, EventArgs e) {
if (!ignoreClick) {
// do your click code...
}
}
がどのようにこの動きを実行していますか?標準フォーム内の標準ボタンをドラッグしてもフォーム(またはボタン)は移動しません。私はここに何かを逃していますか –
申し訳ありませんが、あなたは何も欠けていません。私は質問を更新します。 – MrDysprosium
今、あなたのコードはボタンではなく、フォームを動かしています。 – LarsTech