トップ回答者
フォーカスがフォームの枠にあたる

質問
-
環境:Visual Studio 2010
現在onShowイベントで他の画面から戻ってきた際に
ActiveControlを設定しています。(念のため.Focus()も記述)
しかし、フォーカスがコントロールに当たらずフォームの枠?にあたってしまいます。
フォーカスを確認するため↓キーを押すと[元のサイズに戻す][移動][サイズ変更][最小化][最大化]の小ウインドウが表示されます。
~注意点~
・フォームの×ボタンはWndProcのWindowsAPIメッセージから×できないようにしている
・戻る処理はフレームワークの処理で、画面を表示&非表示することで戻ったように見せている
A → Bへ(Aは非表示) → Aに戻る(Bを閉じて非表示Aを表示する)
フレームワーク依存の処理が多いため再現できないかもしれませんが、何かわかりましたらご連絡を頂きたいです。
よろしくお願いします。
回答
すべての返信
-
~注意点~
・フォームの×ボタンはWndProcのWindowsAPIメッセージから×できないようにしている
・戻る処理はフレームワークの処理で、画面を表示&非表示することで戻ったように見せている
A → Bへ(Aは非表示) → Aに戻る(Bを閉じて非表示Aを表示する)
その特殊な処理をしているコードを共有していただいた方が良いでしょう。
そのコードによって起きている現象の可能性があるためです。コードが共有(公開)できない場合は、その特殊なギミックを1つずつコメントアウトして、現象を引き起こす部分を特定する(切り分ける)ことを試してみてください。
-
tabは使われていますか? もし、使われているなら、tabページも選択する必要があったと思います。
また、Focusはカスタムコントロールに使うものであり、通常はSelectを使います。もちろん、ActiveControlでも良いのですが・・・。以下に書かれています。(参考)
Control.Focus メソッド ()
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.focus.aspx★良い回答には質問者は回答済みマークを、閲覧者は投票を!