第4章Windows程序设计.ppt

上传人:本田雅阁 文档编号:2577635 上传时间:2019-04-11 格式:PPT 页数:42 大小:334.51KB
返回 下载 相关 举报
第4章Windows程序设计.ppt_第1页
第1页 / 共42页
第4章Windows程序设计.ppt_第2页
第2页 / 共42页
第4章Windows程序设计.ppt_第3页
第3页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章Windows程序设计.ppt》由会员分享,可在线阅读,更多相关《第4章Windows程序设计.ppt(42页珍藏版)》请在三一文库上搜索。

1、Visual C#.NET程序设计基础教程 第4章,第4章 Windows程序设计,本章我们将进行: 各种基本控件的使用和属性、以及相应事件的处理 用以解释概念的诸多小程序 学以致用的大量练习,Visual C#.NET程序设计基础教程 第4章,例4.1:图片框上的单击事件。,要点:单击事件,消息显示。,private void pictureBox1_Click(object sender, EventArgs e) MessageBox.Show(“图像显示程序1.0n张飞“, “about“); ,Visual C#.NET程序设计基础教程 第4章,项目中的主要文件,Visual C#.

2、NET程序设计基础教程 第4章,练习,请用文本阅读器(记事本)打开项目中的.resx文件,能不能找到导入的图片在什么地方。 请用记事本打开项目文件浏览一下。 PictureBox能导入哪些类型的文件?,Visual C#.NET程序设计基础教程 第4章,例4.3:改变Label的背景色。要求:在CheckBox被选中时才能生效。,要点。CheckBox的使用,Label背景色的改变。,if (checkBox1.Checked = true) label1.BackColor = Color.Red; ,Visual C#.NET程序设计基础教程 第4章,问题一,程序段 if (checkBo

3、x1.Checked = true) label1.BackColor = Color.Red; 能否改写为 if checkBox1.Checked label1.BackColor = Color.Red; ,Visual C#.NET程序设计基础教程 第4章,问题二,private void button1_Click(object sender, EventArgs e) if (checkBox1.Checked) if (label1.BackColor = Color.Red) label1.BackColor = Color.Blue; else label1.BackColo

4、r = Color.Red; else MessageBox.Show(“你没有选中复选框“); ,这段代码的行为是什么?,Visual C#.NET程序设计基础教程 第4章,例4.4:假设需要给班上同学打综合评定分。因此,每一个同学都是一个对象,含有数据姓名(name)和评定分(score)。为了给一个同学增加评定分,给另外一个同学减少评定分,我们还需要两个方法:GiveScore和TakeOffScore。因此,一个对象的类图应该是这样的。如果有两个学生:张飞(zhangfei)和刘备(liubei)。需要给张飞加分应该使用zhangfei.GiveScore(5),给刘备减分使用liub

5、ei.TakeOffScore(5),Visual C#.NET程序设计基础教程 第4章,新建一个GUI项目。在解决方案资源管理器中点击右键,在该项目下新增一个类,命名为“Student”。,Visual C#.NET程序设计基础教程 第4章,2. 键入代码 public class Student public string Name; public int Score; public int GiveScore(int amount) if (amount 0) Score += amount; return amount; else MessageBox.Show(“加分:“ + amo

6、unt + “不是一个合理值“); return 0; public int TakeOffScore(int amount) if (Score = amount ,Visual C#.NET程序设计基础教程 第4章,在Form1.cs中public partial class Form1 : Form后键入代码 public partial class Form1 : Form Student zhangfei,liubei; public void UpdateForm() label3.Text = zhangfei.Name + “有“ + zhangfei.Score + “分“;

7、 label4.Text = liubei.Name + “有“ + liubei.Score + “分“; ,Visual C#.NET程序设计基础教程 第4章,创建并初始化zhangfei和刘备两个对象 public Form1() InitializeComponent(); zhangfei = new Student(); liubei = new Student(); zhangfei.Name = “zhangfei“; zhangfei.Score = 100; liubei.Name = “liubei“; liubei.Score = 100; UpdateForm();

8、,Visual C#.NET程序设计基础教程 第4章,接下来,需要处理按钮单击事件,在给张飞加分的按钮上双击,输入代码 private void button1_Click(object sender, EventArgs e) zhangfei.GiveScore(5); UpdateForm(); ,Visual C#.NET程序设计基础教程 第4章,给刘备减分的按钮上双击,输入代码 private void button2_Click(object sender, EventArgs e) liubei.TakeOffScore(3); UpdateForm(); 完毕,Visual C

9、#.NET程序设计基础教程 第4章,响应键盘上的按键,例4.5:窗体上放置一个Label,当按下键盘上的方向键的时候,Label就往相应方向移动。,private void Form1_KeyDown(object sender, KeyEventArgs e) if (e.KeyCode = Keys.Left) label1.Left -= 3; ,Visual C#.NET程序设计基础教程 第4章,TextChanged事件,指出下面代码中的错误 private void textBox1_TextChanged(object sender, EventArgs e) textBox1.

10、Text = textBox1.Text + “a“; ,Visual C#.NET程序设计基础教程 第4章,打开文件对话框,例4.6:通过打开文件对话框选定图像文件,并显示在图像框(PictureBox)中,private void btnSelectPicture_Click(object sender, EventArgs e) if (ofdSelectPicture.ShowDialog() = DialogResult.OK) picShowPicture.Image = Image.FromFile(ofdSelectPicture.FileName); this.Text =

11、“图像查看器 (“ + ofdSelectPicture.FileName + “)“; private void btnQuit_Click(object sender, EventArgs e) this.Close(); ,Visual C#.NET程序设计基础教程 第4章,如何获知一个窗体中有哪些控件,例4.7:让窗体上一组组件同时移动。程序界面如图所示,一点击按钮,窗体上的四个标签就会同时向右移动一点。,Visual C#.NET程序设计基础教程 第4章,public partial class Form1 : Form public Form1() InitializeCompon

12、ent(); private void button1_Click(object sender, EventArgs e) for (int i = 0; i this.Controls.Count; i+) if (this.Controlsi is Label) this.Controlsi.Left = (this.Controlsi.Left + 2) % 100; ,Visual C#.NET程序设计基础教程 第4章,如何获得当前光标的位置。,private void Form1_MouseDown(object sender, MouseEventArgs e) 这样一段代码中,光

13、标相关的信息都放在参数e中。sender总是一个对于事件引发源的引用,一般情况下,我们不需要关心。第二个参数e,我们常用的信息有:,Visual C#.NET程序设计基础教程 第4章,一个窗体的初始位置,在一个窗体刚被打开的时候,究竟显示在屏幕的什么地方,我们可以通过设置窗体的startPosition属性来决定。,Visual C#.NET程序设计基础教程 第4章,最小化窗体,可以使用以下代码使窗体最小化: this.Windowstate = FormWindowstate.Minimized; 其中,对Windowstate的赋值可以决定窗体在出现的时候是最大化还是最小化的,或者保持普通

14、状态。,Visual C#.NET程序设计基础教程 第4章,让窗体最小化的时候不在任务栏出现,设置窗体的ShowInTaskbar属性为false。这时候,仍然可以通过Alt-Tab将窗体应用程序显示出来。,Visual C#.NET程序设计基础教程 第4章,显示多个窗体,在工程中添加一个新的窗体,窗体默认将被命名为Form2。 private void button2_Click(object sender, EventArgs e) Form2 newform = new Form2(); newform.ShowDialog(); / newform.Show(); 上面代码将显示窗体2

15、,其中ShowDialog()用于显示模式对话框,意味着窗体2总是出现在窗体1的上面,除非窗体2被关闭,否则没有办法回到窗体1。而采用Show方法便不具备这种效果。,Visual C#.NET程序设计基础教程 第4章,关闭一个窗体,我们有两种方法。一种是采用this.Close()方法,这种情况下,该窗体占用资源将被释放;另一种是采用this.Hide()方法,这 种方法和采用this.Visible = false差不多,只是将窗体隐藏起来了,我们仍然可以通过代码访问到窗体中的数据,Visual C#.NET程序设计基础教程 第4章,窗体中控件相对窗体的布局方式,当窗口大小被改变时,Visu

16、al C#.NET程序设计基础教程 第4章,设置一下右侧两个按钮的Anchor属性为Top,Right。 这个意思是在窗体大小改变的时候,控件距离窗体的上段(top)和右端(right)的距离为一常数。当然,这个常数在你设计界面的时候就已经被IDE自动设置好了。,Visual C#.NET程序设计基础教程 第4章,多文档界面(MDI Forms),新建项目,将项目命名为MDI Example 设置窗体属性如下 this.IsMdiContainer = true; this.Name = “MDIParent“; this.Text = “MDI Parent“;,Visual C#.NET程

17、序设计基础教程 第4章,在项目中添加两个窗体,将窗体类文件名为为Child1Form.cs和Child2Form.cs。Child1Form中设置如下属性。 this.Name = “Child1Form“; this.Text = “Child 1“; Child2Form中设置如下属性。 this.Name = “Child2Form“; this.Text = “Child 2“;,Visual C#.NET程序设计基础教程 第4章,4. 在MDIParent窗体上双击,写入如下代码: Form frmChild = new Child1Form(); frmChild.MdiParen

18、t = this; frmChild.Show(); 其中 frmChild.MdiParent = this指明子窗体的父窗体是MDIparent。,Visual C#.NET程序设计基础教程 第4章,5. 现在可以运行试试了。接下来,在Child1Form上添置一个按钮,设置按钮的相关属性为 this.button1.Text = “显示窗体2“; 双击按钮,输入以下代码 Form frmChild = new Child2Form(); frmChild.MdiParent = this.MdiParent; frmChild.Show(); 这里留意代码的第二行右侧的变化。,Visua

19、l C#.NET程序设计基础教程 第4章,文本框,设置文本对齐方式TextAlign属性 创建多行文本框MultiLine属性 增加滚动条ScrollBars属性 限制文本输入长度MaxLength属性 用作密码输入框PasswordChar属性,尽管用户看不见,但是使用Text属性总是获得用户输入的密码文本。 几个常用事件,Click,MouseDown,MouseUp,MouseMove。,Visual C#.NET程序设计基础教程 第4章,按钮,AcceptButton属性。设置窗体的AcceptButton属性为某个按钮使得在窗体上按下Enter键就相当于在该按钮上点击。即设置了窗体的

20、默认确认按钮。 CancelButton属性。和上面正好相反,键盘上按下ESC,该按钮的单击事件即被触发。,Visual C#.NET程序设计基础教程 第4章,Panel和GroupBox,它们之间的区别是,如果你想要一个边框或者一个标题,请使用GroupBox,如果没有这样的需求,使用Panel就好。另外,Panel能支持滚动条而GroupBox没有。,Visual C#.NET程序设计基础教程 第4章,Groupbox示例,private void radioButton1_CheckedChanged(object sender, EventArgs e) if (radioButton

21、1.Checked) this.BackColor = Color.Gray; private void radioButton2_CheckedChanged(object sender, EventArgs e) if (sender as RadioButton).Checked) this.BackColor = Color.Blue; ,类型转化,Visual C#.NET程序设计基础教程 第4章,列表框,关于列表框,有一个很重要的属性,叫Items属性。大部分的操作都是针对该属性的操作。,Visual C#.NET程序设计基础教程 第4章,如何得知在界面上我所选择的是列表框中的第几

22、项? listBox1.ItemslistBox1.SelectedIndex和listBox1.SelectedItem同义。 保持列表框中的内容有序,Visual C#.NET程序设计基础教程 第4章,组合框,组合框有三种式样,与属性DropDownStyle有关。分别是Simple,DropDown(默认),DropDownList三种。,Visual C#.NET程序设计基础教程 第4章,定时器,在窗体上放置一个Timer控件,该控件可以在Component组件页中找到。并设定以下属性 this.timer1.Enabled = true; this.timer1.Interval =

23、 1000; 双击Timer控件,编写timer1_Tick事件 private void timer1_Tick(object sender, EventArgs e) lblClock.Text = DateTime.Now.ToLongTimeString(); ,Visual C#.NET程序设计基础教程 第4章,TabControl,问题一:如何知道当前位于最前的是哪一个TabPage? 答:通过TabControl的SelectedIndex属性。 问题二:怎么知道用户切换了不同的标签页(TabPage)? 答:TabControl有一个事件叫做SelectedIndexChange。,Visual C#.NET程序设计基础教程 第4章,ListView,ListView也是常用组件之一。和GridView组件类似,都能够构成“网格”的效果。在有这样的需求的时候,可以根据个人喜欢选用ListView或者GridView。,Visual C#.NET程序设计基础教程 第4章,菜单,MenuStrip,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1