C#之Windows常用控件(续)
七、工具栏、状态栏、菜单栏控件:后缀为Strip的控件系列中,分别是ToolStrip、StatusStrip、MenuStrip。
八、定时器控件Timer:常用于需要自动处理的场合,在GUI中不可见。常用属性包括:
1、Interval:引发事件的时间间隔长度,其值以毫秒为单位。
2、Start方法:打开计时器。
3、Stop方法:关闭计时器。
实例解析:实现功能为,创建MDI子窗体,创建两种界面的子窗体,一个是文档界面,一个是窗体界面。文档界面主要练习子窗体的创建及对子窗体的操作;窗体界面主要以调查大学生学习情况为例。
1、创建项目,名为MDIAPP。
2、建立MDI主窗体:进入项目,将默认窗体Form1重命名为“MDI”,并将其IsMdiContainer属性设置为True。该窗体用到菜单栏控件MenuStrip,单击Items属性后的…按钮,弹出“项集合编辑器”,添加三个ToolStripMenuItem控件,分别在左边的属性窗口中设置其属性。每个ToolStripMenuItem控件的DropDownItems属性里又可以添加ToolStripMenuItem控件。
其最终效果图为:
3、建立MDI子窗体:在解决方案资源管理中,右击项目名,在快捷菜单中选择“添加”—“Windows窗体”,依次添加两个Windows窗体,分别命名为MIDChild和FormChild。
MDIChild窗体应用到的控件有MenuStrip和RichTextBox;
FormChild窗体应用到的控件有Label、RichTextBox、ListBox、ComboBox、TextBox、CheckBox、GroupBox、Button、RadioButton、Timer和StatusStrip。
4、编辑代码运行程序
(1)创建新文档类子窗体,在MDI窗体中点击“文件”-“新建”-“文档”编写代码。
private int DChildCount = 0; private void 文档_Click(object sender, EventArgs e) { //新建文档,生成新的子窗体 MDIChild aChild = new MDIChild();//创建子窗体对象 aChild.Text = "Document" + ++ DChildCount; aChild.MdiParent = this;//建立父子窗体关系 aChild.Show();//显示子窗体 }
运行效果图:
(2)对文档的窗体操作,在MDI窗体的菜单栏中的“窗口”下拉菜单中添加“层叠”、“横向平铺”、“纵向平铺”及“排列图标”几项。单击“层叠”菜单选项的显示效果如图:
private void 层叠ToolStripMenuItem_Click(object sender, EventArgs e) { //窗口层叠 this.LayoutMdi(MdiLayout.Cascade); }
(3)MDIChild子窗体对文档的编辑操作:复制、粘贴和剪切
private void 复制_Click(object sender, EventArgs e) { //拷贝到系统剪切板 richTextBox1.Copy(); } private void 粘贴_Click(object sender, EventArgs e) { //从系统剪切板粘贴 richTextBox1.Paste(); }
在新建的Document1文档中,输入文字,选中,单击“编辑”菜单下的“复制”,换行再单击“编辑”-“粘贴”,可实现文字的复制粘贴功能。
(4)FormChild窗体的操作
在MDI窗体“文件”-“打开”,编辑代码
private void 打开_Click(object sender, EventArgs e) { //打开FormChild子窗体 FormChild bChild = new FormChild();//创建子窗体对象 bChild.MdiParent = this;//建立父子窗体关系 bChild.Show();//以无模式窗体调用 }
private void button1_Click(object sender, EventArgs e) { richTextBox1.Text += textBox2.Text + "\n"; //“输入”按钮 }
private void button2_Click(object sender, EventArgs e) { MessageBox.Show("感谢参与!");//“显示”按钮 }
private void listBox1_SelectedIndexChanged_1(object sender, EventArgs e) { int i = listBox1.SelectedItems.Count; string s = ""; int j = 0; for (j = 0; j < i; j++) { s += listBox1.SelectedItems[j].ToString() + ""; } textBox4.Text = s; }
private void radioButton2_CheckedChanged(object sender, EventArgs e) { if (radioButton2.Checked) { this.BackColor = Color.Red; } }
private void checkBox1_CheckedChanged(object sender, EventArgs e) { this.MaximizeBox = checkBox1.Checked; }
private void timer1_Tick(object sender, EventArgs e) { toolStripStatusLabel1.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");//在状态栏显示时间 }
private void radioButton1_CheckedChanged(object sender, EventArgs e) { if (radioButton1.Checked) { this.BackColor = Color.Pink; } }
学习来源:《Visual C#.NET实用教程》清华大学出版社 主编:师硕、于明
发表评论: