現在、カスタムコントロールを開発中で、自分のコードが2回実行されていることに気付きました。それは実際には大きな問題ではありません(Focusメソッド呼び出しのみです)。しかし、私はそれを理解したいと思います。C#を使用してWindowsフォームアプリケーションでOnClickとMouseClickのイベントを正しく使用する
MSDN description for click | onclick eventを読んでから、その状態:ユーザーがオブジェクト上でマウスの左ボタンをクリックしたときに
火を。
左クリックと右クリックの両方を処理するOnClickイベントとMouseClickイベントを追加しました。しかし、コードをデバッグした後、OnClickが左右のクリックイベントを処理することがわかりました。
なぜOnClickは両方を処理するのですか何らかの理由で両方のイベントを自分のコードに保存する必要がありますか?
protected override void OnClick(EventArgs e)
{
this.Focus();
base.OnClick(e);
}
private void CustomControl_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
rightClickMenu(e);
}
}
なぜクリック/ MouseClick内でフォーカスを呼び出すのですか?また、あなたのリンクは、html要素のクリックイベント&winformsのためのものではありません。 – shahkalpesh
私はそれがカスタムコントロールに必要と仮定しました。もしそうでなければ、私は研究し、いつ起こるかを見るでしょう。それとも、自分でそれを呼び出さなければならないのか。 AHHHはリンク上のhtml要素をキャッチしませんでした...私は約2インチの高さを感じています!助けてくれてありがとう! – Billy
Windowsフォームでは、クリックイベントを処理する方法として、MouseClickとClickの2つの方法があります。 –