C#のお話

アバター
バグ
記事: 130
登録日時: 14年前
住所: 愛媛県
連絡を取る:

C#のお話

投稿記事 by バグ » 14年前

こういうお仕事をしていると、エンターキーでフォーカスを移動してくれと言われることが意外に多いです。
WindowsにはTabキーでフォーカスを次のコントロールへ移動させるという機能が標準で完備されてあるのに…です。
面倒くせぇなぁ…と言えればいいのですが、そうも言えず対応する訳です(笑)

CODE:

 
/// 
/// エンターキーによるフォーカスの移動
/// 
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        if (e.Control == false)
        {
            SelectNextControl(ActiveControl, true, true, true, true);
        }
    }
}



しかしですねぇ、困ったことにこれだけだと、エンターキーを押すたびに『ボン♪』というやや不快な音が鳴る訳です。
これもついでに抑止しちまおうってのが下記のコード。

CODE:

/// 
/// エンターキー入力時の音を消す
/// 
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == ((Char)Keys.Enter))
    {
        e.Handled = true;
    }
}

まぁ、普通はあまり必要ない話かな?(苦笑)
とりあえず、知識として持っていても損はないよという程度のお話でしたm(_ _)m
最後に編集したユーザー バグ on 2010年10月27日(水) 21:24 [ 編集 1 回目 ]

ISLe
記事: 2650
登録日時: 14年前

Re: C#のお話

投稿記事 by ISLe » 14年前

> エンターキーを押すたびに『ボン♪』というやや不快な音が鳴る

エンターキーはデフォルトボタンを押す機能が割り当てられているので、デフォルトボタンが無いと鳴るのですよね。
デフォルトボタンを作るとそっちに制御が移ってしまうのでややこしさが増しますけど。

「エンターキーでデフォルトボタン」を使う人が「エンターキーでフォーカスを~」なんて言わないはずなので、エンターキーとタブキーの機能を入れ替えてしまっても困らないと思うのですけどどうなんでしょう。

アバター
バグ
記事: 130
登録日時: 14年前
住所: 愛媛県
連絡を取る:

Re: C#のお話

投稿記事 by バグ » 14年前

『TABはTABとして使いたい』という我儘仕様の場合もありますので、その辺りはケースバイケースでやってます(^-^)