0

Windowsフォームアプリケーションがあります。ウィンドウをクリックするとフォームがアクティブになり、もう一度クリックして特定のコントロールのクリック イベントを呼び出す必要があります。たとえば、ボタンをクリックするとフォームがアクティブになり、もう一度ボタンをクリックする必要があります。

コントロールのクリックとウィンドウのアクティブ化をワンクリックで実行する方法はありますか? できれば、クリック可能なコントロール(メニュー、ボタン、ラベルなど)が何であれ、これを機能させたいと思います

これまでのところ、マウスオーバーで勝利フォームをアクティブにすることができ、コントロールのクリックが機能しました。クリック時に勝利フォームをアクティブにし、クリックイベントがある場合は、基になるコントロールでクリックコマンドを実行したいと思います。

4

1 に答える 1

0

さて、これがあなたが望むことを達成する方法です(あなたのfromのMouseClickイベントに同様のメソッドを添付するだけです):

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
    var c = this.GetChildAtPoint(e.Location);
    this.InvokeOnClick(c, e);
}

ただし、この方法には欠点があります。たとえば、コントロールが無効になっている場合でもクリックされるため、カーソルの下のコントロールが自分で「クリック可能」であることを確認する必要があります...

于 2013-02-03T22:41:51.533 に答える