は私のフォームのマウスイベントハンドラの1つの例である:マウスイベントがトリガーされないのはなぜですか?ここ
private void GENIO_Viewer_Form_MouseDown(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
m_bLeftButton = true;
m_MousePosition = e.Location;
m_MouseClick = e.Location;
if(m_bZoomWindow)
{
m_Points.Clear();
m_Points.Add(GetWorldCoordinates(e.Location));
}
}
base.OnMouseDown(e);
}
私はそれにブレークポイントを置いて、それがトリガーれることは決してありません。フォーム定義などで何かを逃したことはありますか?
更新:
フォームが拡大TableLayerPanelを持っているので、私は、追加のイベントハンドラ追加しました:
private void tableLayoutPanel_MouseDown(object sender, MouseEventArgs e)
{
MessageBox.Show("Yes");
}
をしかし、たとえこれが傍受されません。 tableLayoutPanelは、(UserControlから派生した)UserControl1オブジェクトを表示しています。
問題は、(UserControlに)適切なハンドラを追加しても、私はその処理を行う必要があるので、フォーム自体にそのバックをフィードする必要があるということです。
更新:これは私のフォームのイベントハンドラのリストの一部です:
途中でコントロールがある場合、フォームはマウスイベントを取得しません。つまり、実際にクリックされたものがマウスイベントを受け取ります。それがコントロールの場合、コントロールはマウスイベントを取得します。あなたがそれらを処理すべき場所はどこですか。 –
質問に答えを入れてはいけません。問題を解決した場合は、以下の自己回答を投稿することができます。 – LarsTech
@LarsTech(最終的に)私はこのPreviewMouseDownを試しています。 –