- Windows程序设计与架构
- 蔺华 汤春林 蔡兴旺编著
- 990字
- 2020-08-28 17:44:34
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所示。
![](https://epubservercos.yuewen.com/7F71FF/3590270603430201/epubprivate/OEBPS/Images/Figure-0145-18276.jpg?sign=1739484687-2DoiVxEze33cMPXCWR038N1tockbr8RR-0-37aacdf6e5f5fe3cbeb9314b57d701ee)
图2-23 控件布局与设计(一)
⑤ 修改groupBox1控件的Text属性为“选项卡控件”。
⑥ 向groupBox1控件中拖曳三个Label控件,修改其属性如下表所示:
⑦ 向groupBox1控件中拖曳三个ComboBox控件,修改其属性如下表所示:
⑧ 完成本步后,程序的外观大致如图2-24所示。
![](https://epubservercos.yuewen.com/7F71FF/3590270603430201/epubprivate/OEBPS/Images/Figure-0145-18513.jpg?sign=1739484687-j1hYOsummaSDY5tjWP5G1bghqjVNuI1x-0-a545eb6f218437978cafef353a92d429)
图2-24 控件布局与设计(二)
⑨ 向groupBox1控件中拖曳三个CheckBox控件,修改其属性如下表所示:
⑩ 向groupBox1控件中拖曳一个Label控件,修改其Text属性为“选项卡控件宽度”。
⑪ 向groupBox1控件中拖曳一个TractBar控件,修改其Modifiers属性为“Protected Internal”,修改其TabStop属性为“False”,修改其TickFrequency属性为“10”,修改其Value属性为“220”。
⑫ 此时窗体视图如图2-25所示。
![](https://epubservercos.yuewen.com/7F71FF/3590270603430201/epubprivate/OEBPS/Images/Figure-0146-18625.jpg?sign=1739484687-epoYskYHY9G1RdLbStQl9L8XQtv6jJxL-0-8750283e359d2da2b8d6ba98762e30dd)
图2-25 控件布局与设计(三)
⑬ 在设计视图中用鼠标选定tabControl1控件,将鼠标停放在控件的一个标签上并单击鼠标右键,在弹出的菜单中选择“添加选项卡”,即可在原标签的平行位置旁自动生成新的选项卡,如图2-26所示。
![](https://epubservercos.yuewen.com/7F71FF/3590270603430201/epubprivate/OEBPS/Images/Figure-0146-18631.jpg?sign=1739484687-p4EkKFeq4sjyFqDTJbJG0xanltKGsmJY-0-cbca5cce28266c5686db7b45ab789052)
图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所示。
![](https://epubservercos.yuewen.com/7F71FF/3590270603430201/epubprivate/OEBPS/Images/Figure-0148-18774.jpg?sign=1739484687-s4VwteImjKclcHit7Sh0QoSzG1buzg5l-0-6f6e5bd45d7344be94ddc49fc79392a5)
图2-27 程序运行结果(一)
⑲ 通过演示可以看出,TabCoutral的外观被右边的“选项卡空间”控制,外观发生了改变,如图2-28所示。
![](https://epubservercos.yuewen.com/7F71FF/3590270603430201/epubprivate/OEBPS/Images/Figure-0149-18784.jpg?sign=1739484687-NhUvd6lOcJdoHnNxg18dYmOeUuaWXNFG-0-6ec3ace29efaf897621509f4f58e4389)
图2-28 程序运行结果(二)
⑳ 通过滑动条可改变TabContrul控件的宽度,如图2-29所示。
![](https://epubservercos.yuewen.com/7F71FF/3590270603430201/epubprivate/OEBPS/Images/Figure-0149-18790.jpg?sign=1739484687-WrJD7mTYWwrfXukRTN9pT1jrvaEg5akV-0-7e071e068ec3bdfe3fa6e993fd242456)
图2-29 程序运行结果(三)