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实用教程》清华大学出版社 主编:师硕、于明














发表评论: