Windows Formアプリケーションで指定したコントロールにフォーカスを与える

Windows Formアプリケーションで指定したコントロールにフォーカスを与えるコードを紹介します。

概要

Windows Formアプリケーションの指定したコントロールにフォーカスを与えるには、ControlクラスのFocusメソッドを呼び出します。

書式

(コントロールオブジェクト).Focus();

プログラム例

UI

下図のUIを作成します。

コード

以下のコードを記述します。フォームのActivateイベントとButton1のClickイベントを実装します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SetFocusToControl
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void Form1_Activated(object sender, EventArgs e)
    {
      textBox1.Focus();
    }

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

解説

private void Form1_Activated(object sender, EventArgs e)
{
  textBox1.Focus();
}
フォームがアクティブになった場合にはtextBox1にフォーカスを与えます。

private void button1_Click(object sender, EventArgs e)
{
  textBox2.Focus();
}
button1をクリックした場合はtextBox2にフォーカスを与えます。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。textBox1にフォーカスがセットされます。


button1をクリックします。textBox2にフォーカスがセットされます。


フォームを非アクティブにします。フォーカスがフォームから無くなります。


フォームをクリックしアクティブにします。フォーカスがtextBox1にセットされます。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2012-06-07
iPentec all rights reserverd.