垂直方向にドラッグ可能なタブ ページ内にユーザー コントロールがあります。コントロールも選択可能です。ユーザーがアイテムをクリックして選択できるようにしたいのですが、ドラッグが終了したときに MouseClick イベントを発生させたくありません。MouseUp イベントのみが発生するはずです。すなわち。ユーザーがドラッグを終了した後は、項目を選択しないでください。何かアドバイス?
1644 次
2 に答える
1
これはWinFormsだと思います。
ユーザー コントロールがあると言うとき、から派生したクラスがあることを意味しますUserControl
か? その場合、OnMouseClick
メソッドをオーバーライドして を呼び出さないようbase.OnMouseClick(e)
にすることができます。これにより、起動が妨げMouseClick
られます。
SamHi が提案したようにtrue
、ドラッグの開始時に設定されたブール値を使用できます。一度OnMouseClick
呼び出されたら、そのブール値を false に設定して、ドラッグが完了した後にマウス クリックを発生させることができます。
例:
public class MyUserControl : UserControl
{
bool dragging = false;
// ...
protected override void OnMouseClick(MouseEventArgs e)
{
if (dragging)
{
// We've finished dragging, don't call MouseClick
dragging = false;
return;
}
// Not dragging, fire MouseClick
base.OnMouseClick(e);
}
}
于 2012-06-15T04:44:59.990 に答える
0
ドラッグしている間は true に等しいドラッグ ブールを使用し、短いタイマーの実行後にそれをオフにしてみてください。このようにして、MouseClick イベントに if ステートメントを追加して、最近ドラッグされたかどうかを確認できます。
于 2012-06-15T02:50:51.330 に答える