TabControl を貼り付ける

C# の自動生成を使って TabControl を貼り付けます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. C# の自動生成で ToolBox から TabControl を貼り付けます。
    TabControl を使うと、タブのクリックで複数のページ(ウインドウ)を切り替えることが出来ます。
    Windows や Visual Studio のバージョンが変わると、操作方法や画面に多少の違いが生じます。
    Windows8.1 の発売に先立ち、2013/07/24 にダウンロードした次の環境で開発します。
     ※Windows8.1 評価版
     ※Microsoft Visual Studio Professional 2013 Preview - 日本語
  2. Visual Studio Professional 2013 Preview のショートカットをダブルクリックして起動します。
    メニューから[ファイル/新規作成/プロジェクト]を選択します。
  3. テンプレートから[Visual C#/Windows/Windowsフォームアプリケーション]を選択します。
    名前は規定値で[WindowsFormsApplication1]になっています。
    場所はプロジェクトを格納するフォルダ(C:\TMP など)を指定して下さい。
    「ソリューションのディレクトリの作成」チェックは外します。
  4. [ツールボックス]から[tabControl]をForm全体に貼り付けます。
    規定値で tabPage1, tabPage2 の二枚のページが定義されています。
    [デザイン] が表示されないときは、ソリューション・エクスプローラーの Form1.cs をダブルクリックして下さい。
  5. タブのIDを規定値から変更します。
    tabPage1 のプロパティから、Text に [Page-1] をタイプします。
    tabPage2 のプロパティから、Text に [Page-2] をタイプします。
  6. 右三角アイコンをクリックして、コンパイル&実行すると tabControl が表示されます。
    Page-1, Page-2 をクリックするとタブが切り替わります。
    今回はタブを切り替えても何も変わりません。

TextBox を貼り付ける

  1. tabPage1(Page-1), tabPage2(Page-2) に TextBox を貼り付けてタブで切り替えます。
  2. tabPage1(Page-1) の下に表示されている枠全体に TextBox(規定値でTextBox1) を貼り付けます。
    TextBox のプロパティを Multiline に設定して下さい。
    TextBox1 のプロパティから、Text に [Page-1 Test] とタイプします。
  3. tabPage2(Page-2) の下に表示されている枠全体に TextBox(規定値でTextBox2) を貼り付けます。
    TextBox のプロパティを Multiline に設定して下さい。
    TextBox2 のプロパティから、Text に [Page-2 Chenge] とタイプします。
  4. コンパイル&実行で、Page-1, Page-2 をクリックすると TextBox のメッセージが切り替わります。

タブのクリック

  1. タブのクリックで TextBox にメッセージを設定します。
  2. TabControl のプロパティから稲妻アイコンを選択します。
    Selected の右側に "tabSelected" とタイプするとイベントハンドラが作成されます。
  3. tabSelected メソッドをコーディングします。
        private void tabSelected(object sender, TabControlEventArgs e)
        {
            if (e.TabPage==tabPage1)
                textBox1.Text = "Page-1 クリック";
            if (e.TabPage == tabPage2)
                textBox2.Text = "Page-2 チェンジ";
        }
    
  4. 実行すると最初は "Page-1 Test" が表示されます。
    Page-2 タブをクリックすると "Page-2 チェンジ" が表示されます。
    Page-1 タブをクリックすると "Page-1 クリック" が表示されます。

【NOTE】

プログラムで tabControl に TAB を追加する方法です。
Tab0 ~ Tab4 の5個を追加します。
private void Form1_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 5; i++)
    {
        TabPage tab = new TabPage("Tab" + i.ToString());
        tabControl1.TabPages.Add(tab);
    }
}
ボタンのクリックで TAB の数を調べます。
private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("タブ数は" + tabControl1.TabPages.Count + "です");
}
tabSelected() で選択されている TAB の番号(Index)を取得するときは、TabPageIndex を使います。
private void tabSelected(object sender, TabControlEventArgs e)
{
    int tabnum = e.TabPageIndex;
        ・・・
}
選択されている TAB を削除します。
tabControl1.TabPages.Remove(tabControl1.SelectedTab);
全ての TAB を削除します。
tabControl1.TabPages.Clear();
指定した TAB(num 番目のTAB)を削除します。
tabControl1.TabPages.RemoveAT(num);
TAB を削除すると tabSelected() が呼ばれます。
選択されている TAB が無いときの戻り値は -1 になります。
private void tabSelected(object sender, TabControlEventArgs e)
{
    int tabnum = e.TabPageIndex;
}

間違い易いイベントハンドラに tabPage1_Click があります。
tabPage1_Click は、タブ(tabPage1)内のエリアをクリックすると起動されるようです。

超初心者のプログラム入門(C# Frame Work)