私はwinformアプリケーションを実行しています。このアプリケーションの上部にもう1つのwinformを追加しました。これにより、アプリケーションにデータが渡されます。アプリケーションにデータを渡すと、[保存] ボタンが有効になり、データをアプリケーションに保存できます。保存ボタンは toolstripmenuitem です。私が直面している 1 つの問題は、新しく追加されたフォームがまだそこにある場合です。保存するには 2 回クリックする必要があります。つまり、最初のクリックでは正しくクリックされません。または、新しく追加された winform を閉じると、保存クリックが初めて発生するか、既存のアプリケーションの任意の部分をクリックすると、つまりフォーカスがそこにあり、最初のクリックも行われます。
質問する
1182 次
3 に答える
8
ツール ストリップを含むフォームにこのメソッド オーバーライドを追加すると、それが処理されます。
protected override void WndProc(ref Message m)
{
const int WM_PARENTNOTIFY = 0x0210;
if (m.Msg == WM_PARENTNOTIFY)
{
if (!Focused)
Activate();
}
base.WndProc(ref m);
}
ツール ストリップは Activate 呼び出しのみを実行しているため、自分で処理することで Click イベントを実行します。
于 2012-12-12T14:58:39.717 に答える
0
ある時点でメインフォームで行う必要がある保存ボタンを有効にするときは、それに対して Focus() を呼び出します。そうすれば、フォーカスがメイン フォームに戻され、ユーザーはワンクリックで保存できます。
于 2012-12-12T10:02:34.907 に答える