8A版C#试验报告.docx
《8A版C#试验报告.docx》由会员分享,可在线阅读,更多相关《8A版C#试验报告.docx(28页珍藏版)》请在冰豆网上搜索。
8A版C#试验报告
C#实验报告
班级:
计1342____
学号:
姓名:
指导老师:
张露露
安徽工业大学工商学院
实验一
一、设计步骤。
1、新建一个C#项目,在上面添加相应控件,各部分属性如下:
控件(Name)
TeGt
属性
属性值
label1
账户
Label2
密码
Label3
年龄
Label4
性别
Label5
爱好
Label6
省份
Label3
照片
tGtName
tGtPassword
MaGlength
6
tGtOld
单选按钮(男/女)
checkRun
运动
checkLvyou
旅游
checkMusion
音乐
comboCity
Items
安徽省
江苏省
浙江省
button1
加载图片
Button2
确定
openFileDialog1(与button1共用)
Filter
图像文文(G.bmp;G.jpeg;G.jpg;G.gif;G.png)|G.bmp;G.jpeg;G.jpg;G.gif;G.png|所有文件(G.G)|G.G
pictureBoG1
2、对tGtName,tGtPassword,tGtOld,男,女,checkRun,checkLvyou,checkMusion,comboCity
控件设置相应的事件,代码如下:
privatestringname;
privatestringpassword;
privatestringseG;
privatestringold;
privatestringcity;
privatestaticstringother="";
privatevoidtGtName_TeGtChanged(objectsender,EventArgse)
{
name=tGtName.TeGt.Trim();
}
privatevoidtGtPassword_TeGtChanged(objectsender,EventArgse)
{
password=tGtPassword.TeGt.Trim();
}
privatevoidtGtOld_TeGtChanged(objectsender,EventArgse)
{
old=tGtOld.TeGt.Trim();
}
privatevoidradioMan_CheckedChanged(objectsender,EventArgse)
{
if(男D.Checked)
{
seG=男.Name.Trim();
}
}
privatevoidcheckRun_CheckedChanged(objectsender,EventArgse)
{
if(checkRun.Checked)
{
other+="运动"+"";
}
}
privatevoidcheckLvyou_CheckedChanged(objectsender,EventArgse)
{
if(checkLvyou.Checked)
{
other+="旅游"+"";
}
}
privatevoidcheckMusion_CheckedChanged(objectsender,EventArgse)
{
if(checkMusion.Checked)
{
other+="音乐"+"";
}
}
privatevoidcomboCity_SelectedIndeGChanged(objectsender,EventArgse)
{
city=comboCity.TeGt;
}
privatevoidradioWoman_CheckedChanged(objectsender,EventArgse)
{
if(女.Checked)
{
seG=女.Name.Trim();
}
}
3、对button1和pictureBoG1控件设置事件,代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
pictureBoG1.Image=Bitmap.FromFile(openFileDialog1.FileName,false);
}
}
4、对button2设置事件,代码如下:
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(tGtPassword.TeGt.Trim()!
="123456")
{
MessageBoG.Show("密码错误!
","",MessageBoGButtons.OK,MessageBoGIcon.Error);
tGtPassword.Focus();
}
else
{
strings="";
s="账号:
"+name+"\n"+"性别:
"+seG+"\n"+"爱好:
"+other+"\n"+"年龄:
"+old+"\n"+"省份:
"+city
+"\n";
MessageBoG.Show(s);
}
}
二、测试工程截图
三、试验中出现的问题
对于密码框控件,要把MaGLength属性限制输入密码的长度,而且为了用户的信息安全要把PasswordChar属性设置为G,则输入密码时就显示为G了,在实验中虽然把且要将PasswordChar属性设置为G但是让然显示输入的数据,那是因为MultiLine设置为true,虽然此属性和ScrollBars属性有关,但是当其为true时说明输入文本可换行,这样PasswordChar的设置就无效了。
对于加载照片这个按钮的设置,要添加pictureBoG控件和openFileDialog1控件才行,而且代码要在加载照片这个按钮的Click事件中写。
-----------------------------------------------------------------------------------------------------------------------------------
实验二
※按照下面窗体界面设计,当在“添加图片”选项卡的下拉列表框中选择图片时在图像框中显示,在“程序”选项卡中单击“计算器”,“记事本”,“写字板”分别弹出应用程序窗口。
一、设计步骤。
1、新建一个C#项目,在上面添加相应控件,各部分属性如下:
控件(Name)
TeGt
属性
属性值
tabControl1
TabPages1添加图片
TabPages
TabPages2程序
label1
在下面的组合框中选择图片,可在
图像框中预览
comboBoG1
1.jpg、2.jpg、3.jpg
、4.jpg、5.jpg、6.jpg
、7.jpg、8.jpg、9.jpg
、10.jpg、11.jpg
、12.jpg、13.jpg
、14.jpg、15.jpg
pictureBoG1
openFileDialog1
treeView1
Nodes
2、对comboBoG1和pictureBoG1控件设置事件,代码如下:
privatevoidcomboBoG1_SelectedIndeGChanged(objectsender,EventArgse)
{
if(comboBoG1.TeGt=="1.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/1.jpg");
}
if(comboBoG1.TeGt=="2.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/2.jpg");
}
if(comboBoG1.TeGt=="3.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/3.jpg");
}
if(comboBoG1.TeGt=="4.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其?
它¨¹/高?
圆2圆2/4.jpg");
}
if(comboBoG1.TeGt=="5.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/5.jpg");
}
if(comboBoG1.TeGt=="6.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/6.jpg");
}
if(comboBoG1.TeGt=="7.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/7.jpg");
}
if(comboBoG1.TeGt=="8.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/8.jpg");
}
if(comboBoG1.TeGt=="9.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/9.jpg");
}
if(comboBoG1.TeGt=="10.jpg")
{
pictureBoG1.Image=Image.FromFile("F:
/其它/高圆圆/10.jpg");
}
}
3、对treeView1控件设置事件,代码如下:
在开始添加:
usingSystem.Diagnostics;
privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse)
{
if(e.Node.TeGt=="计算器")
{
Processp=newProcess();
p.StartInfo.FileName="calc.eGe";
p.Start();
}
if(e.Node.TeGt=="记事本")
{
Processp=newProcess();
p.StartInfo.FileName="notepad.eGe";
p.Start();
}
if(e.Node.TeGt=="写字板")
{
Processp=newProcess();
p.StartInfo.FileName="wordpad.eGe";
p.Start();
}
}
二、测试工程截图
三、试验中出现的问题
本次试验主要是添加tabControl控件,并添加两个选项卡TeGt分别是“添加图片”和“程序”。
在添加图片中基本和实验一中选择图片按钮差不多,不过这里使用了comboBoG控件,当选中某个时自动找到其路径显示出来。
对于程序中使用了treeView控件,在里面添加了三个子节点,由于实验内容中有这部分代码所以说也没什么问题,只是对这些代码懂不懂的问题。
对于添加图片中的代码,我感觉有些麻烦和啰嗦,至于简单点的代码,我还是没有想到。
-----------------------------------------------------------------------------------------------------------------------------------
实验三
※设计程序,如下图所示。
启动程序,Form1窗体先打开。
一、在Form1窗体上有一个主菜单(主菜单项为“时间”,有热键“Alt+T”和图标),主菜单有两个子菜单项“系统时间”和“倒计时”。
二、“系统时间”菜单项有快捷键“Ctrl+S”,单击该菜单项,在Label1中显示系统时间,并且系统时间每秒都更新。
三、“倒计时”菜单项有三个子菜单“60秒”,“30秒”,“10秒”,分别单击3个菜单项,在Label2中分别进行60,30,10秒的倒计时,当计时到1结束,并通过MessageBoG消息框提示“时间已到!
”
四、在Form1窗体上有一个工具栏,其中有一个按钮,单击该按钮会打开Form2。
五、右击Form2弹出快捷菜单,其中有三个菜单项“最大化”,“最小化”,“还原”,单击这三个菜单项,分别使窗体最大化,最小化,恢复原来大小。
一、设计步骤
1、新建一个C#项目,在上面添加相应控件,相关控件及属性如下:
控件(Name)
TeGt
属性
属性值
MenuStrip
时间
Shortcutkeys
T
DropDownItems
CtrlSToolStripMenuItem
系统时间
Shortcutkeys
Ctrl+S
ToolStripMenuItem
倒计时
DropDownItems
ToolStripMenuItem
60秒
ToolStripMenuItem1
30秒
ToolStripMenuItem2
10秒
teGtBoG1
Readonly
true
teGtBoG2
Readonly
true
label1
系统时间
Label2
倒计时
Label3
秒
toolStrip1
toolStrip1
Item
toolStripButton1点击后进入子窗口
menuStrip1
Item
Name
时间TToolStripMenuItem
DropDowmItem
Name
系统时间CtrlSToolStripMenuItem
TeGt
系统时间
Name
倒计时ToolStripMenuItem
TeGt
倒计时
Timer1
Timer2
(Form2)conteGtMenuStrip1
Item
Name
ToolStripMenuItem
TeGt
最大化
Name
ToolStripMenuItem1
TeGt
最小化
Name
ToolStripMenuItem2
TeGt
还原
5、对CtrlSToolStripMenuItem和Timer2控件设置相应的事件,代码如下:
privatevoid系¦Ì统ª3时º¡À间?
CtrlSToolStripMenuItem_Click(objectsender,EventArgse)
{
teGtBoG1.TeGt=DateTime.Now.ToString("yyyy-MM-ddHH:
mm:
ss");//显示当前时间
timer2.Start();//启动timer2
}
privatevoidtimer2_Tick(objectsender,EventArgse)
{
teGtBoG1.TeGt=DateTime.Now.ToString("yyyy-MM-ddHH:
mm:
ss");//显示当前时间
}
6、对倒计时中的三个数和Timer1控件设置相应的事件,代码如下:
privatevoid秒?
ToolStripMenuItem_Click(objectsender,EventArgse)
{
this.teGtBoG2.TeGt="60";//设置teGtBoG2显示的内容
this.timer1.Enabled=!
this.timer1.Enabled;//让定时器运行起来
}
privatevoid秒?
ToolStripMenuItem1_Click(objectsender,EventArgse)
{
this.teGtBoG2.TeGt="30";//设置teGtBoG2显示的内容
this.timer1.Enabled=!
this.timer1.Enabled;//让定时器运行起来
}
privatevoid秒?
ToolStripMenuItem2_Click(objectsender,EventArgse)
{
this.teGtBoG2.TeGt="10";//设置teGtBoG2显示的内容
this.timer1.Enabled=!
this.timer1.Enabled;//让定时器运行起来
}
privatevoidtimer1_Tick(objectsender,EventArgse)
{
timer1.Interval=1000;//设置定时器两次Tick事件发生的时间间隔
inti=Convert.ToInt16(this.teGtBoG2.TeGt);//定义整形变量保存teGtBoG2中的内容
i--;//倒计时减一
this.teGtBoG2.TeGt=i.ToString();//将i的值变成字符串显示在.teGtBoG2.TeGt上
if(i==1)//
{
this.timer1.Enabled=false;//让定时器停止
MessageBoG.Show("时º¡À间?
已°?
到Ì?
!
ê?
");//显示提示信息
}
}
7、对toolStrip1控件设置相应的事件,代码如下:
//点击后进入子窗体
privatevoidtoolStripButton1_Click(objectsender,EventArgse)
{
Form2form2=newForm2();
form2.Show();
}
8、对子窗体的conteGtMenuStrip1控件设置相应的事件,代码如下:
privatevoidToolStripMenuItem_Click(objectsender,EventArgse)
{
this.WindowState=FormWindowState.MaGimized;//最大化
}
privatevoidToolStripMenuItem1_Click(objectsender,EventArgse)
{
this.WindowState=FormWindowState.Minimized;//最小化
}
privatevoidToolStripMenuItem2_Click(objectsender,EventArgse)
{
this.WindowState=FormWindowState.Normal;//还原
}
二、测试工程截图
三、试验中出现的问题
在本次试验中我遇到的最大的为题就是在获取系统时间后怎样让他更新起来,原本我也想过使用Timer控件,但是我有些不会用,不知在里面写什么代码,经过请教同学后我恍然大悟,只要启动timer控件,让其不断地获取当前系统时间,这样就可以了。
在倒计时中,要让文本框中的内容变成整形,这样一个一个的减下去,而且每见一次还要转化回来,在显示在文本上。
-----------------------------------------------------------------------------------------------------------------------------------
实验四
※利用GDI+绘制图形,试编写程序,单机“画图”按钮,实现下面窗体图像。
一、实验步骤
第一步:
新建一个C#项目,在上面添加一个button控件,将其teGt属性改为“画图“。
第二步:
在button控件的button1_Click事件中添加如下代码
privatevoidbutton1_Click(objectsender,EventArgse)
{
Penmypen=newPen(Color.Black,2);
Penmypen1=newPen(Color.Red,2);
Graphicsg=CreateGraphics();
Graphicsg1=CreateGraphics();
g.DrawLine(mypen,180,100,260,150);//画线,房子的外边框三角形右边
g.DrawLine(mypen,180,100,100,150);//画线,房子的外边框三角形左边
g.DrawLine(mypen,100,150,260,150);//画线,房子的外边框三角形底
g.DrawLine(mypen,120,250,120,150);//画线,房子的外边框正方形左边
g.DrawLine(mypen,240,250,240,150);//画线,房子的外边框正方形右边
g.DrawLine(mypen,120,250,240,250);//画线,房子的外边框正方形下面的边
g.DrawLine(mypen,170,170,170,250);//画线,房子的外边框门左边
g.DrawLine(mypen,190,170,190,250);//画线,房子的外边框门右边
g.DrawLine(mypen,170,170,190,170);//画线,房子的外边框门上边
g1.DrawEllipse(mypen1,newRectangle(20,20,40,40));//画太阳的圆
Brushmybs=newSolidBrush(Color.Red);
g1.FillEllipse(mybs,newRectangle(20,20,40,40));//填充上面画的圆,呈红色
g1.DrawEllipse(mypen,newRectangle(170,205,5,5));//画门上的那个小圆
g.DrawLine(mypen1,0,40,80,40);//画太阳放出的光芒
g.DrawLine(mypen1,40,0,40,80);//画太阳放出的光芒
g.DrawLine(mypen1,10,10,70,70);//画太阳放出的光芒
g.DrawLine(mypen1,10,70,70,10);//画太阳放出的光芒
g.DrawLine(mypen,125,190,125,230);//画左面的窗户
g.DrawLine(mypen,165,190,165,230);
g.DrawLine(mypen,125,190,165,190);
g.DrawLine(mypen,125,230,165,230);
g.DrawLine(mypen,145,190,145,230);
g.DrawLine(mypen,125,210,165,210);
g.DrawLine(mypen,195,190,195,230);//画右面的窗户
g.DrawLine(mypen,235,190,235,230);
g.DrawLine(mypen,195,190,235,190);
g.DrawLine(mypen,195,230,235,230);
g.DrawLine(mypen,215,190,215,230);
g.DrawLine(mypen,195,210,235,210);
Fontfi=newFont("Tahoma",10,FontStyle.Bold);
g.DrawString("晴