实验Windows窗体应用程序设计.docx
- 文档编号:27894766
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:28
- 大小:352.41KB
实验Windows窗体应用程序设计.docx
《实验Windows窗体应用程序设计.docx》由会员分享,可在线阅读,更多相关《实验Windows窗体应用程序设计.docx(28页珍藏版)》请在冰豆网上搜索。
实验Windows窗体应用程序设计
实验六、七:
Windows窗体应用程序设计
一、实验目的:
熟悉Windows窗体应用程序设计具体应用
二、实验内容:
1、 主菜单设计
1)新建一个名为MainMenu的窗体应用程序,将窗体Text属性设为“主菜单演示”
2)工具箱->公共控件->TextBox,拖动其进入窗体,在窗体中添加一个文本框textBox1
3)工具箱->菜单和工具栏->MenuStrip,拖动其进入窗体,如下图:
4)建立如下所示菜单:
在输入菜单选项名称时,用符号“&”引导一个英文字母表示可用快捷键Alt加该英文字母调出该选项。
5)双击各菜单项,给各菜单项添加如下代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceE23
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidmenuStrip1_ItemClicked(objectsender,ToolStripItemClickedEventArgse)
{
}
privatevoid重置RToolStripMenuItem_Click(objectsender,EventArgse)
{
textBox1.Text="欢迎使用主菜单";
}
privatevoid清空DToolStripMenuItem_Click(objectsender,EventArgse)
{
textBox1.Text="";
}
privatevoid退出XToolStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoid关于AToolStripMenuItem_Click(objectsender,EventArgse)
{
MessageBox.Show("主菜单演示,菜单选项的使用","提示");
}
}
}
运行程序,测试菜单功能,如下图:
2、 上下文菜单设计
1)新建一个名为MainMenu的窗体应用程序,将窗体Text属性设为“上下文菜单”
2)工具箱->公共控件->TextBox,拖动其进入窗体,在窗体中添加一个文本框textBox1
3)工具箱->菜单和工具栏->ContextMenuStrip,拖动其进入窗体,添加一个上下文菜单控件,如下图:
5)建立如下上下文菜单:
注意:
在“文件”和“帮助”两个菜单项间添加了一条分隔线,方法是输入破折号“-”。
6)双击各菜单项,添加代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceE24
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoid退出XToolStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoid清空DToolStripMenuItem_Click(objectsender,EventArgse)
{
textBox1.Text="";
}
privatevoid重置RToolStripMenuItem_Click(objectsender,EventArgse)
{
textBox1.Text="上下文菜单演示";
}
privatevoid关于AToolStripMenuItem_Click(objectsender,EventArgse)
{
MessageBox.Show("上下文菜单演示","提示");
}
}
}
7)在TextBox属性窗口中,在ContextMenuStrip属性中打开下拉菜单,选择确定为contextMenuStrip1
8)运行程序。
此时,在文本框中右击就可弹出上下文菜单。
3、 单选框和复选框
1)新建一个名为E29的窗体应用程序,属性Text改为“单选框和复选框”
2)添加三个分组框,将Text属性分别改名为“性别”、“兴趣”和“用户兴趣”,步骤如下:
工具箱->容器->GroupBox,拖动至窗体,即可添加
3)在分组框“性别”中添加两个单选按钮RadioButton控件,步骤如下:
工具箱->公共控件->RadioButton,将Text属性分别改为“男”和“女”
4)在分组框“兴趣”中添加四个复选框CheckBox控件,步骤如下:
工具箱->公共控件->CheckBox,将Text属性分别改为“音乐”、“电影”、“游戏”和“旅行”
5)在分组框“用户兴趣”中添加两个标签Label控件,步骤如下:
工具箱->公共控件->Label,将Text属性分别改为“性别未知”和“兴趣未知”,如下图:
6)分别双击“男”和“女”两个单选按钮,分别输入如下代码:
privatevoidradioButton1_CheckedChanged(objectsender,EventArgse)
{
label1.Text="男";
}
privatevoidradioButton2_CheckedChanged(objectsender,EventArgse)
{
label1.Text="女";
}
7)分别双击各复选框,输入如下代码(四个复选框中代码相同,以第一个为例):
privatevoidcheckBox1_CheckedChanged(objectsender,EventArgse)
{
stringtemp="";
if(checkBox1.Checked==true)
temp=temp+checkBox1.Text;
if(checkBox2.Checked==true)
temp=temp+checkBox2.Text;
if(checkBox3.Checked==true)
temp=temp+checkBox3.Text;
if(checkBox4.Checked==true)
temp=temp+checkBox4.Text;
if(temp=="")
label2.Text="用户没有选择任何兴趣";
else
label2.Text=temp;
}
8)保存后运行程序,如下图:
4、 列表框和组合框
1)新建一个名为E30的窗体,Text改为“列表框和组合框”
2)在窗体中添加六个控件,添加完成后的效果如下图:
各控件要求如下表:
序号
类型
属性
值
1
ListBox
Name
listBoxYueshouru
2
ComboBox
Name
comboBoxZhengjianleixing
3
GroupBox
Name
Text
groupBoxUser
用户信息
4
Label
Name
Text
labelYueshouru
月收入
5
Label
Name
Text
labelShouru
收入
6
Label
Name
Text
labelZhengjianleixing
身份证
7
Label
Name
Text
labelZhengjian
证件
3)双击窗体空白处进入代码编辑窗口,输入如下代码:
privatevoidForm1_Load(objectsender,EventArgse)
{
//ListBox初始化
listBoxYueshouru.Items.Add("100以下");
listBoxYueshouru.Items.Add("1000-2000");
listBoxYueshouru.Items.Add("2001-3000");
listBoxYueshouru.Items.Add("3000-4000");
listBoxYueshouru.Items.Add("4000-5000");
listBoxYueshouru.Items.Add("5000-6000");
listBoxYueshouru.Items.Add("6000-7000");
listBoxYueshouru.Items.Add("7000-8000");
listBoxYueshouru.Items.Add("8000-9000");
listBoxYueshouru.Items.Add("9000-10000");
listBoxYueshouru.Items.Add("1000以上");
//ComboBox初始化
comboBoxZhengjianleixing.Items.Add("身份证");
comboBoxZhengjianleixing.Items.Add("学生证");
comboBoxZhengjianleixing.Items.Add("教师证");
comboBoxZhengjianleixing.Items.Add("军人证");
comboBoxZhengjianleixing.Items.Add("护照");
}
4)分别双击ListBox和ComboBox,分别输入如下代码:
privatevoidlistBoxYueshouru_SelectedIndexChanged(objectsender,EventArgse)
{
labelShouru.Text=listBoxYueshouru.SelectedItem.ToString();
}
privatevoidcomboBoxZhengjianleixing_SelectedIndexChanged(objectsender,EventArgse)
{
labelZhengjian.Text=comboBoxZhengjianleixing.SelectedItem.ToString();
}
4)运行效果如下图:
5、 列表视图
1)新建一个名为E31的窗体,Text改为“列表视图”
2)在窗体中中添加五个控件,添加完成后的效果如下图:
各控件要求如下表:
序号
类型
属性
值
1
ImageList
Name
Images
imageListanimal
添加六张动物图片
2
ListView
Name
SmallImageList
View
listViewanimal
imageListanimal
SmallIcon
3
Label
Name
Text
labelTishi1
喜欢的动物
4
Label
Name
Text
labelTishi2
你最喜欢的动物是:
5
Label
Name
Text
labelAnimal
未知
3)双击窗体空白处进入代码编辑窗口,输入如下代码:
privatevoidForm1_Load(objectsender,EventArgse)
{
listViewanimal.Items.Add("大象",0);
listViewanimal.Items.Add("狗",1);
listViewanimal.Items.Add("猫",2);
listViewanimal.Items.Add("青蛙",3);
listViewanimal.Items.Add("蛇",4);
listViewanimal.Items.Add("兔子",5);
listViewanimal.Items.Add("乌龟",6);
}
4)双击ListView控件,输入如下代码:
privatevoidlistView1_SelectedIndexChanged(objectsender,EventArgse)
{
labelAnimal.Text=listViewanimal.FocusedItem.Text;
}
5)运行效果如下图:
6、 树视图
1)新建一个名为E32的窗体,Text改为“树视图”,Size设为“400,500”
2)添加一个TreeView控件,将Size属性改为“390,470”,并将Anchor属性改为“Top,Bottom,Left,Right”
3)添加一个ImageList控件,为其添加“我的电脑”,“磁盘驱动器”,“文件夹”,“打开的文件夹”四个图标(通过Images属性实现)
4)将TreeView的ImageList属性置为imageList1,使两者相关联
5)打开TreeView属性Nodes的树节点编辑器,添加一个根,将标签改为“我的电脑”,在“ImageKey”和“SelectedImageKey”中选择相应图标。
6)完成后的效果如下图:
7)双击TreeView,输入如下图标:
privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse)
{
if(e.Node.Text.ToString()!
="我的电脑")
EnumDirectories(e.Node);
else
EnumDrives(e.Node);
}
以上的AfterSelect事件中用到EnumDirectories和EnumDrives两个方法,其中还用到了System.IO下的Directory,需在头部添加“usingSystem.IO;”。
两个方法的实现代码如下:
privatevoidEnumDrives(TreeNodeParentNode)
{
if(ParentNode.Nodes.Count==0)
{
foreach(stringdriveinDirectory.GetLogicalDrives())
{
treeView1.SelectedNode=ParentNode;
TreeNodeTempNode=newTreeNode();
TempNode.Text=drive.Substring(0,drive.Length-1);
TempNode.Tag=drive;
TempNode.ImageIndex=1;
TempNode.SelectedImageIndex=1;
treeView1.SelectedNode.Nodes.Add(TempNode);
treeView1.SelectedNode.Nodes[treeView1.SelectedNode.Nodes.Count-1].EnsureVisible();
}
}
}
privatevoidEnumDirectories(TreeNodeParentNode)
{
treeView1.SelectedNode=ParentNode;
stringDirectoryPath=ParentNode.Tag.ToString();
if(ParentNode.Nodes.Count==0)
{
if(DirectoryPath.Substring(DirectoryPath.Length-1)!
=@"\")
DirectoryPath+=@"\";
try
{
foreach(stringdirectoryinDirectory.GetDirectories(DirectoryPath))
{
TreeNodeTempNode=newTreeNode();
TempNode.Text=directory.Substring(directory.LastIndexOf(@"\")+1);
TempNode.Tag=directory;
TempNode.ImageIndex=3;
TempNode.SelectedImageIndex=2;
treeView1.SelectedNode.Nodes.Add(TempNode);
treeView1.SelectedNode.Nodes[treeView1.SelectedNode.Nodes.Count-1].EnsureVisible();
}
}
catch(Exception)
{
}
}
}
8)运行效果如下图:
7、 Timer控件
1)新建一个名为E32的窗体,Text改为“Timer控件”
2)添加一个Timer控件,设置其Interval属性为10,表示每隔10毫秒发生一个Tick事件
3)添加两个Button控件,Text属性分别改为:
“开始/继续”(表示开始计时或停止后继续开始计时)和“停止/清零”(表示停止计时或在计时停止时将计时器清零),
4)添加一GroupBox控件,Text改为“计时器”
5)在GroupBox中添加三个Label控件用于显示分钟数、秒数及精确到0.01毫秒的小数,Name分别设为labelFen,labelMiao,labelHaomiao,Text都设为0;再添加两个Label控件,Text都设为“:
”,用于分隔前三个控件
6)双击“开始/继续”按钮,添加如下代码:
privatevoidbutton1_Click(objectsender,EventArgse)
{
timer1.Enabled=true;
}
7)双击“停止/清零”按钮,添加如下代码:
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(timer1.Enabled==true)
timer1.Enabled=false;
else
{
labelFen.Text="0";
labelMiao.Text="0";
labelHaomiao.Text="0";
}
}
8)双击Timer控件,添加如下代码:
privatevoidtimer1_Tick(objectsender,EventArgse)
{
intmin=Int32.Parse(labelFen.Text);
intsec=Int32.Parse(labelMiao.Text);
intfra=Int32.Parse(labelHaomiao.Text);
fra++;
//分钟数
if(sec==60)
{
min++;
labelFen.Text=min.ToString();
labelMiao.Text="0";
if(min==100)
{
timer1.Enabled=false;
MessageBox.Show("计时器已达到上限","提示");
return;
}
}
//秒数
if(fra==100)
{
sec++;
labelMiao.Text=sec.ToString();
}
//秒数小数位
fra=fra%100;
labelHaomiao.Text=fra.ToString();
}
9)运行效果如下图:
8、 时钟控件和日历控件
1)新建一个名为E35的窗体,Text改为“日历”,Name改为“FormCalendar”,Size改为“300,320”
2)添加以下几个控件并进行相应设置:
序号
类型
属性
值
备注
1
DateTimePicker
Name
ShowUpDown
Font
dateTimePickerCalendar
True
宋体,15.75pt,style=Bold
ShowUpDown设为True防止单击下拉按钮时显示MonthCalendar控件
2
MonthCalendar
Name
monthCalendarCalendar
3
TrackBar
Name
trackBarCalendar
4
Label
Name
Text
labelLowSpeed
低速
5
Label
Name
Text
labelHighSpeed
高速
6
Button
Name
Text
Enabled
ForeColor
buttonRun
运行
False
GrayText
7
Button
Name
Text
buttonStop
停止
8
Button
Name
Text
buttonReset
重置
9
Timer
Name
Enabled
InterVal
timerCalendar
True
1000
效果如下:
3)双击各相应控件,添加对应代码,完整代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceE35
{
publicpartialclassFormCalendar:
Form
{
publicFormCalen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 Windows 窗体 应用 程序设计