2011-12-16 11 views
1

私のリストボックスでMouseDoubleClickイベントを発生させることができません。 MouseDown イベントを追加しました。たびにダブルクリックMouseDownイベントが発生したなぜこれは起こっているのですか?リストボックスマウスとダブルクリック

答えて

2

コントロールの上でマウスボタンを押すと、いくつかのイベントが発生します。彼らは、この順に解雇されています

  • のMouseDown
  • MouseClickとを
  • のMouseUp
  • DoubleClickイベントが起動されます

、あなたは一定の時間間隔で制御をダブルクリックします。だからイベントを起こさなければならない。 MouseDownイベントで「魔法」を実行すると、MouseDoubleClickが生成されない可能性があります。

さらに詳しいヘルプが必要な場合は、MouseDownEventコードを投稿し、WinFormsまたはWPFに質問をタグ付けしてください。

編集

あなたがのMouseDownイベントにブレークポイントを持っていて、デバッガでコードを実行している場合は、MouseDoubleClickは、デバッガによってcatchedされることはありません。 UIイベントのデバッグはあまり簡単ではありません。

+0

。 IF(indexOfItem = -1!)列 {listBox.DoDragDrop(indexOfItem.ToString()、DragDropEffects.Move)。 } } – Razack

+0

以下を使用して修正されました。http://msdn.microsoft.com/en-us/library/system.windows.forms.systeminformation.aspx – Razack

+0

@Razack:ドラッグアンドドロップの目的で、さまざまなイベント利用可能です。ドラッグアンドドロップはランタイムによって処理され、あなたはそれを "フィード"するだけです。 Fischermaen @ – Fischermaen

1

この問題を回避するための回避策を探していましたが、以下が見つかりました。これにより、マウスダウンイベントを使用しているときにダブルクリックイベントが発生するようになります。 WinFormsの ます。private void listBox_MouseDown(オブジェクト送信者、MouseEventArgs e)の {int型 indexOfItem = listBox.IndexFromPoint(e.Location)にご意見をお寄せいただきありがとうございますFischermaen @

private void myControl_MouseDown(object sender, MouseEventArgs e) 
{ 
     if (e.Button == MouseButtons.Left && e.Clicks == 1) 
     { 
      //do my mouse down stuff 
     } 
} 
関連する問題