【C#】ユーザーコントロール内で,KeyDown()イベントが狙ったとおり動かない
関連記事
- なんと!今週の土曜日も仕事してますた.来週の土曜日も仕事臭い.TCPソケット通信をゴリゴリ書いてる 【2025年08月30日(土)】
- 【ChatGPT o4】祝日なのに仕事ーバテすぎー今夜こそ絶命だーモルモルモル 【2025年03月20日(木)】
- 【#CSharp】制御系が動き出したべ 【2025年02月20日(木)】
- 【#CSharp】ひっさしぶりにガッツリなC#案件をやっているぞー 【2025年02月19日(水)】
- 今週もひたすらモノ書き #JAVA 祭りがまだまだ続く そろそろC#を書かせろー 【2024年12月04日(水)】
エンターキー押したら,テキストボックスを次々移動していく,アレ
今の謎案件の画面実装やってたら,うまくいかない(汗
ダメなところは,ユーザーコントロールにテキストボックスを山のように張ったブロック
こんなやつ(諸般の事情でエッチな部分は消してあるぞな:爆)
これをフォームに貼り付けたけど,エンターキーでピョンピョン飛ばない.うまく行かねぇ...
ユーザーコントロール内のキー周りのイベントは特殊なことを基底側クラスでやっている模様.なので,キーイベントの動きが狙ったとおりの動きをしない感じ
海外事例イロイロあったんで,試してみたけどイマイチ
頭きたー(怒
ダサダサな実装でごまかすことに(笑
フォーム側のKeyDown()イベントにユーザーコントロールのどれかがフォーカス持ってるかのチェックコードを追加
//--------------------------------------------- //キーダウン // //--------------------------------------------- private void FormMain_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (this.ActiveControl == uclInputHogehoge1) //ユーザーコントロールHogehoge内のどれかのコントロールがフォーカス持ってる { uclInputHogehoge1.NextCtrlMove(); } else if (this.ActiveControl == uclInputHogepekoA1) //ユーザーコントロールHogepekoA内のどれかのコントロールがフォーカス持ってる { uclInputHogepekoA1.NextCtrlMove(); } else if (this.ActiveControl == uclInputHogepekoB1) //ユーザーコントロールHogepekoB内のどれかのコントロールがフォーカス持ってる { uclInputHogepekoB1.NextCtrlMove(); } else //それ以外のコントロール { this.SelectNextControl(this.ActiveControl, true, true, true, true); } e.Handled = true; e.SuppressKeyPress = true; } else { } }ユーザーコントロールに実装したNextCtrlMove()メソッドには,SendKeyでTABコードを送るというダサダサ実装(GRB汗
public partial class UCLInputBase : UserControl { public void NextCtrlMove() { SendKeys.Send("{TAB}"); } }う~む,美しくない.ダサすぎ.素人の実装じゃねぇ~か(苦笑
まぁ,望みどおりの動きしているし,これでいいかっ!(GRB爆
参考情報程度でー
バグってたらスマソ❤
コメント
【大地震】カムチャツカ半島沖合で地震 マグニチュード7.5と推定(25/9/13)
台風一過なのに今日も猛暑予想.秋が来ないぞい
【霧島山】新燃岳が噴火 噴煙高度火口上5500m(25/8/28)
日産「GT-R」生産終了 スポーツカーの開発環境 厳しさ増す
火球か?隕石か?「夜なのに明るく」「カメラが真っ白になるほどの光」九州や西日本各地で目撃あいつぐ 空気の振動も観測
ひょっとして,大規模にやらかしてました?ぎんゆぅ~さん,落ちてた模様(爆