2.9 案例分析9 选项卡示例

2.9.1 案例描述

本节介绍常用控件ComboBox的综合使用。

2.9.2 案例分析

ComboBox控件的使用方法。

2.9.3 案例实现与技巧

① 首先,运行Visual Studio 2005,新建一个Windows应用程序,并命名为TabControl。

② 在Form1窗口类的开头部分加入引用语句,如下所示:

using System.Resources;

③ 切换到设计视图,向Form1窗体中拖曳一个PictureBox控件和一个GroupBox控件。

④ 向Picture控件中拖曳一个TabControl控件,操作完成后大致布局如图2-23所示。

图2-23 控件布局与设计(一)

⑤ 修改groupBox1控件的Text属性为“选项卡控件”。

⑥ 向groupBox1控件中拖曳三个Label控件,修改其属性如下表所示:

⑦ 向groupBox1控件中拖曳三个ComboBox控件,修改其属性如下表所示:

⑧ 完成本步后,程序的外观大致如图2-24所示。

图2-24 控件布局与设计(二)

⑨ 向groupBox1控件中拖曳三个CheckBox控件,修改其属性如下表所示:

⑩ 向groupBox1控件中拖曳一个Label控件,修改其Text属性为“选项卡控件宽度”。

⑪ 向groupBox1控件中拖曳一个TractBar控件,修改其Modifiers属性为“Protected Internal”,修改其TabStop属性为“False”,修改其TickFrequency属性为“10”,修改其Value属性为“220”。

⑫ 此时窗体视图如图2-25所示。

图2-25 控件布局与设计(三)

⑬ 在设计视图中用鼠标选定tabControl1控件,将鼠标停放在控件的一个标签上并单击鼠标右键,在弹出的菜单中选择“添加选项卡”,即可在原标签的平行位置旁自动生成新的选项卡,如图2-26所示。

图2-26 添加选项卡

⑭ 向每个选项卡中加入数量不等的可视控件,模拟应用。

⑮ 向Form1窗体类中添加成员方法用于响应用户的选择输入,代码如下所示:

 protected void checkBox1_Click(object sender,EventArgs e) {
   this.tabControl1.Multiline = checkBox1.Checked;
   this.alignmentComboBox_SelectedIndexChanged(null,EventArgs.Empty);
}
protected void checkBox2_Click(object sender,EventArgs e) {
   this.tabControl1.HotTrack = checkBox2.Checked;
}
protected void checkBox3_Click(object sender,EventArgs e) {
   if (checkBox3.Checked)
       tabControl1.ImageList = imageList1;
   else
       tabControl1.ImageList = null;
}
protected void appearanceComboBox_SelectedIndexChanged(object sender,EventArgs e) {
   int index = appearanceComboBox.SelectedIndex;
   if (index == 0) {
       tabControl1.Appearance = TabAppearance.Normal;
   }
   else if (index == 1) {
       tabControl1.Appearance = TabAppearance.Buttons;
   }
   else {
       tabControl1.Appearance = TabAppearance.FlatButtons;
   }
   tabControl1.PerformLayout();
}
protected void alignmentComboBox_SelectedIndexChanged(object sender,EventArgs e) {
   int index = alignmentComboBox.SelectedIndex;
   if (index == 0) {
       tabControl1.Alignment = TabAlignment.Top;
   }
   else if (index == 1) {
       tabControl1.Alignment = TabAlignment.Bottom;
   }
   else if (index == 2) {
       tabControl1.Alignment = TabAlignment.Left;
   }
   else
       tabControl1.Alignment = TabAlignment.Right;
}
protected void sizeModeComboBox_SelectedIndexChanged(object sender,EventArgs e) {
   int index = sizeModeComboBox.SelectedIndex;
   if (index == 0) {
       tabControl1.SizeMode = TabSizeMode.Normal;
   }
   else if (index == 1) {
       tabControl1.SizeMode = TabSizeMode.FillToRight;
   }
   else
   tabControl1.SizeMode = TabSizeMode.Fixed;
}
protected void trackBar_Scroll(object sender,EventArgs e) {
    tabControl1.Width = trackBar.Value;
}

⑯ 分别为各个CheckBox控件添加代理事件,如下表所示:

⑰ 为各个ComboBox控件添加代理事件,如下表所示:

⑱ 选择Visual Studio 2005 IDE主菜单“调试”|“开始执行(不调试)”菜单项来运行应用程序。程序运行结果如图2-27所示。

图2-27 程序运行结果(一)

⑲ 通过演示可以看出,TabCoutral的外观被右边的“选项卡空间”控制,外观发生了改变,如图2-28所示。

图2-28 程序运行结果(二)

⑳ 通过滑动条可改变TabContrul控件的宽度,如图2-29所示。

图2-29 程序运行结果(三)