【C#】ユーザーコントロール内で,KeyDown()イベントが狙ったとおり動かない
関連記事
- 【ChatGPT o4】祝日なのに仕事ーバテすぎー今夜こそ絶命だーモルモルモル 【2025年03月20日(木)】
- 【#CSharp】制御系が動き出したべ 【2025年02月20日(木)】
- 【#CSharp】ひっさしぶりにガッツリなC#案件をやっているぞー 【2025年02月19日(水)】
- 今週もひたすらモノ書き #JAVA 祭りがまだまだ続く そろそろC#を書かせろー 【2024年12月04日(水)】
- 【#CSHARP】ソリューション内でサービス,Winformアプリを混在で作成させ,バイナリ出力先を同じにするとサービスが起動しない 【2024年02月08日(木)】
エンターキー押したら,テキストボックスを次々移動していく,アレ
今の謎案件の画面実装やってたら,うまくいかない(汗
ダメなところは,ユーザーコントロールにテキストボックスを山のように張ったブロック
こんなやつ(諸般の事情でエッチな部分は消してあるぞな:爆)
これをフォームに貼り付けたけど,エンターキーでピョンピョン飛ばない.うまく行かねぇ...
ユーザーコントロール内のキー周りのイベントは特殊なことを基底側クラスでやっている模様.なので,キーイベントの動きが狙ったとおりの動きをしない感じ
海外事例イロイロあったんで,試してみたけどイマイチ
頭きたー(怒
ダサダサな実装でごまかすことに(笑
フォーム側の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爆
参考情報程度でー
バグってたらスマソ❤
コメント
スーパーでのコメの平均価格 5キロ 4285円 前週より値上がり(25/5/26)
ご近所にココイチが出来る,らしい
【梅雨】朝から大雨ぇ~ さすが梅雨じゃ(25/5/17)
今日は城主生誕記念日で日本国は祝日,らしい...
兵庫 城崎温泉 旅館で火事 ほぼ消し止められる
東海道新幹線 停電のため運転見合わせ 区間が拡大 原因調査中
【霧島山】新燃岳:活発化してた火山性地震,ピタッと止まった(25/4/26)
今日は落雷,ひょうに厳重警戒じゃげな(25/4/14)
中日本高速道路 ETCシステム障害 7都県 一部の専用レーン閉鎖(25/4/6)