【C#】指定したコントロールにフォーカスを当てる方法

C#

初期フォーカス

`

Formにラベルを3つ、テキストボックスを3つ配置。
この場合、TabIndexが一番若いテキストボックスにフォーカスされる。
(※ラベルのTabIndexの方が若くても、テキストボックスにフォーカスされる。)

フォーカスされるコントロールを指定する

コントロールにフォーカスを当てるためにはいくつか方法がある。

    • コントロール名.Focus();  (Loadイベント以外のみ)
    • コントロール名.Select();
    • ActiveControl = コントロール名;

このいずれかを書けばいい。
ただし、注釈にもあるように、コントロール名.Focus(); はLoadイベント以外のみ適用される。

Loadイベント時に

private void Form1_Load(object sender, EventArgs e)
{
    textBox2.Focus();
}

と書いたとしても、フォーカスされるのはtextBox1となる。

【結果】

これが、下記のいずれかであれば、フォーカスされているのはtextBox2となる。

private void Form1_Load(object sender, EventArgs e)
{
    textBox2.Select();
}
private void Form1_Load(object sender, EventArgs e)
{
    ActiveControl = textBox2;
}

【結果】

Loadイベント以外であれば、Focusでもフォーカスされる。

コメント

タイトルとURLをコピーしました