少しずつゲームを作るスレat GAMEDEV少しずつゲームを作るスレ - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト948:456 25/06/12 09:33:06.26 1UEcXoJI.net FormのプロパティKeyPreviewをTrueにすれば良いような気がするが背景(ユーザーコントロール)が謎すぎて何とも 949:Text Dungeon(英語化) 25/06/12 22:10:43.46 yZyhP/xw.net >>948 レスありがとうございます。 Text Dungeonはフォームは1つ(Form1)で、From1上に各画面ごとのユーザーコントロール (例えばタイトル画面だったらUserControl_Title、メイン画面だったらUserControl_Mainなど)があって、 ユーザーコントロールを切り替える(.Visible=true/falseする)ことで画面を切り替える仕様になっています また、KeyPressイベントは各ユーザーコントロールのイベントハンドラ(タイトル画面ならUserControl_Title_KeyPress)で処理しています で、ユーザーコントロールにはKeyPreviewプロパティがないので、Form1のKeyPreviewをtrueにして Form1のkeyPressイベントをUserControl_Title_KeyPressに転送してみたところ、>>947の現象を回避することができました こっちの方がActiveControl = nullなんてことをするより筋のいいやり方かもしれません ただ、この手法だとフォーカスは相変わらずコンボボックスに残るため コンボボックスの操作終了後も四角い点線枠が表示され続ける(↓) https://imgur.com/7TSHahn.png のが妙に気になるので、一旦は>>947の処理で対応したいと思います。 ちなみに本現象はコンボボックスに限らずキー入力があるコントロールをユーザーコントロール上に置くと発生するようで どうもユーザーコントロールはKeyPressイベントはあるのにTabStopプロパティはない、 子コントロールを置けるのにKeyPreviewプロパティはないなど、フォーカス周りの設計思想があいまいというか、 システム側にぶん投げてるような感じで、プログラマー側ではフォーカスを制御できないような気がします (調べたわけではないので個人の感想です) つまり、わしが悪いんやない、Microsoftがいい加減なのが悪かったんや……! (と、いい加減プログラマーが申しております) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch