收藏 分享(赏)

WinForm基础.ppt

上传人:wspkg9802 文档编号:7402753 上传时间:2019-05-16 格式:PPT 页数:45 大小:469KB
下载 相关 举报
WinForm基础.ppt_第1页
第1页 / 共45页
WinForm基础.ppt_第2页
第2页 / 共45页
WinForm基础.ppt_第3页
第3页 / 共45页
WinForm基础.ppt_第4页
第4页 / 共45页
WinForm基础.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、WinForm基础,第一个WinForm程序,WinForm:.Net中用来开发Windows程序的技术,无论是之前学的控制台程序,还是后面要学的ASP.Net都是调用.Net框架,因此知识点都是一样的。 新建一个Windows项目:WindowsWindows窗体应用程序 控件:窗口上很多元素都是相似的,因此将这些元素抽象为一些类,这些类就叫做控件(例:识别PowerPoint中的控件)。 添加、删除、移动、缩放控件,WinForm概念,拖放控件,输入姓名,单击按钮,窗口标题显示问好。设置窗口对象的属性就可以改变窗口的外观。 点击按钮调用TextBox的Hide方法,调用控件的方法就可以使得

2、按钮发生动作。,WinForm概念,当用户点击按钮的时候button1_Click方法被调用,这个方法不是程序员调用的,而是程序员把方法写好,并且说明“当用户点击按钮的时候执行button1_Click方法中的代码”,这一点和 控制台程序不同。这被称为“好莱坞”原则:不要找我,我会找你(Dont call me,I will call you) 控件、属性、事件、事件处理方法、控件的名字(控件的实例;对象名),简单的WinForm程序,简单的加法计数器,用户在文本框1、2中输入两个整数,点击按钮,在文本框3中显示两个数的和,如果1或者2中的数据格式错误,弹出对话框提示错误。int.TryPar

3、se、MessageBox.Show。 。 string s = string.Format(“0你好“, textBox1.Text);/推荐 练习1:输入宽和高,输出面积。 练习2:输入Email地址,输出用户名和域名。,简单的WinForm程序,练习3:用户在文本框1、2中输入两个数,点击按钮,在文本框3中显示从文本框1中的数字到文本框2中的数字之间的累加和。如果文本框1中的数字比文本框2中的数字大,则弹出对话框提示错误。 练习4:页面上有一个文本框,文本框左侧和右侧各有一个按钮,点击左侧按钮,文本框中的文字向左循环滚动一次;点击右侧按钮,文本框中的文字向右循环滚动一次。,简单的WinF

4、orm程序,练习5:页面上有一张图片,默认是隐藏的(Visible=False),用户在文本框中输入身份证号(131226198105223452),点击按钮,如果年龄大于18岁显示图片(Visible=True),否则提示年龄太小。取当前年份:DateTime.Now.Year。,简单的加法计数器,简单的加法计数器,private void button1_Click(object sender, EventArgs e)string str1 = textBox1.Text;string str2 = textBox2.Text;int i1,i2;if (!int.TryParse(st

5、r1, out i1) / int.TryParse(str1, out i1)=falseMessageBox.Show(“第一个数不是合法的整数“);return;/不要忘了return,退出函数if (int.TryParse(str2, out i2) = false)MessageBox.Show(“第二个数不是合法的整数“);return;int i3= i1+i2;textBox3.Text = Convert.ToString(i3); /i3.ToString();,private void button1_Click(object sender, EventArgs e)s

6、tring email = textBox1.Text;string strs = email.Split();if (strs.Length != 2)MessageBox.Show(“非法的Email地址“);return;textBox2.Text = strs0;textBox3.Text = strs1;,输入Email地址,输出用户名和域名。,输入两个数,求累加和,private void button1_Click(object sender, EventArgs e)string str1 = textBox1.Text;string str2 = textBox2.Text;

7、int i1, i2;if (int.TryParse(str1, out i1) = false)MessageBox.Show(“数字1格式错误“); return;if (int.TryParse(str2, out i2) = false)MessageBox.Show(“数字1格式错误“);return;if (i1 = i2)MessageBox.Show(“第二个数大于第一个数“);/排错技巧:在出错的地方设置断点,看相关变量的值。return;int sum = 0;for (int i = i1; i = i2; i+)sum = sum + i;textBox3.Text

8、= sum.ToString();,滚动文本,private void button1_Click(object sender, EventArgs e)string str = textBox1.Text;int i=str.Length;textBox1.Text = str.Substring(1, i - 1) + str.Substring(0, 1);private void button2_Click(object sender, EventArgs e)string str = textBox1.Text;int i = str.Length;textBox1.Text = s

9、tr.Substring(i-1, 1) + str.Substring(0, i-1);,private void button1_Click(object sender, EventArgs e)string s = textBox1.Text.ToString().Substring(6, 4);int i= DateTime.Now.Year- int.Parse(s);if (i = 18)pictureBox1.Visible = true;elsepictureBox1.Visible = false;,显示图片,输入Email地址,输出用户名和域名。,TextBox,文本框的几

10、种模式:Multiline(多行)、PasswordChar(密码)。将文本框的PasswordChar设为*就是密码框效果,将MultiLine属性设置为true并且将高度拉到合适的大小就是多行效果,附加一行:textBox4.AppendText(“hello“+“n“)。 控件名要有含义、控件名前缀的“潜规则”:按钮Button-btn;文本框Textbox-txt;复选框CheckBox-cb。控件名称一定要有意义。,TextBox,案例1:登录界面。登录错误三次退出程序。假设用户名/密码是admin/888888,不区分大小写。(易错点:局部变量与类变量)。退出程序Close()或A

11、pplication.Exit()。 案例2:修改密码。界面上有旧密码、新密码,重复新密码。假设旧密码为888888,两次输入的新密码必须和旧密码不一样,并且两次输入的新密码必须一致。,TextBox,案例3:在多行文本框中多行“姓名=成绩”格式的数据,要求输出成绩最高的学生的姓名和成绩。,ComboBox,SelectedIndex:选中项的序号。没有任何选中的时候是-1,否则是选中的序号(0开始) 练习1:简单的四则运算器。 如何禁止用户编辑?三种风格。 相应选中改变事件 练习2:省市选择器 练习3:日月选择器,假设2月份总是28天,1、3、5、7、8、10、12是31天,其它是30天。表

12、驱动。,ListBox,ListBox:SelectedIndex、Items、SelectedIndexChanged事件。 多选的方式,设置SelectionMode为MultiExtend ListBox:SelectedIndices、SelectedItem、SelectedItems、SelectionMode; 案例:人员选择,左边选择到右边、右边退回左边、批量添加。遇到的问题,删除顺序,计算机的思维。,ListBox,问题:删除自动生成的事件代码。先在事件视图中删除方法名,再到代码中删除;先删除form.cs中的,再去手动删除designer.cs中。,计时器Timer,Tim

13、er。每隔一段时间触发一个事件。不可视控件。Inerval、Enabled。Tick事件。 计量单位:ms(毫秒) 1秒=1000毫秒 DateTime 案例:小时钟。取当前时间 DateTime.Now.ToString(); 案例:走马灯 案例:QQ消息窗口。如何显示其他窗口。,右下角提示信息窗口,Windows坐标系:左上角为原点;窗口的Left值为窗口左上角的横坐标,Top值为窗口左上角的纵坐标;窗口的Width为宽度,Width为高度。 取得屏幕工作区Screen.GetWorkingArea(this) 将窗口显示在右下角,简单的数学运算。,滑动提示窗口,创建一个Timer,每隔一

14、段时间修改一下Top的值,当全部显示出来的时候禁用Timer。 对外提供提供SlideShow(String caption,String msg)方法 超时自动关闭。 滑动隐藏。Timer接力。 鼠标点击则取消“超时自动隐藏”。,树状结构数据,TreeView控件,树的基本概念:父节点、子节点、兄弟节点、根节点 编辑节点,节点名字Name,节点文字Text 动态添加节点(VS编辑界面中有增加根节点、增加子节点两个按钮):,TreeView控件,向根节点下增加子节点:treeView.Nodes.Add,它的返回值就是创建的节点对象。treeView.Nodes代表根节点的所有子节点。 向Tr

15、eeNode增加子节点,treeNode.Nodes.Add,它的返回值就是创建的节点对象。treeNode.Nodes代表节点的所有子节点。,练习:构建省市县三级树,首先treeView.Nodes.Add添加省节点。并且把添加的节点TreeNode对象放到treeNodeLiaoning等变量中 向treeNodeLiaoning等省级节点下添加市节点,并且把添加的节点TreeNode对象放到treeNodeShenYang等变量中 向treeNodeShenYang等市节点下增加区县节点。,TreeView深入,选择项发生变化的时候在TextBox中显示当前选择项的值。AfterSele

16、ct事件。 TreeNode的Tag,TreeNode中Text只能盛放显示的值,可以用Tag属性给节点关联一个对象。 Tag属性是Object类型的,因此可以关联任何的对象。案例:省市县显示当前项的邮编练习:选择节点的时候显示市长、人口(int)类型。,容器控件,GroupBoxPanel TabControl(增删Tab页,设定激活的页),其他常用控件,RadioButton:Checked。CheckedChanged和Click事件的区别 CheckBox CheckedListBox DateTimePicker。 PictureBox 作业:开发注册页面。数据合法性判断:Email

17、、密码强度实时显示。带协议、同意协议CheckBox。,文件对话框,打开文件对话框 OpenFileDialog 两种创建方式:可视化拖放、new 显示对话框的方式:ShowDialog ShowDialog的返回值DialogResult类型 通过FileName属性得到选择的文件名 属性:Title、InitialDirectory 文件过滤器 Filter:文本文件|*.txt|All|*.* SaveFileDialog。OpenFileDialog相同的成员:Title、ShowDialog、FileName等。,列表(非范型),数组的局限性:无法对数据中的数据进行动态的增删。 Ar

18、rayList(列表)。Add、Clear、Contains、Count、IndexOf、Insert、Remove、RemoveAt、Reverse、Sort、索引器。 作业1:输入整数,然后反序输出 作业2:两个列表的连接、合并。 作业3:分拣奇偶数,奇数在左,偶数在右,面试题,Hashtable,简繁体翻译,为什么效率这么高 HashSet,范型,用ArrayList的麻烦的地方:数据放进去就不知道是什么类型的了;不能防止非法类型数据的放入;将ArrayList返回给其他函数,会令调用者很困惑。 List 除此除外并无不同。 IEnumerable、ICollection 除了List类

19、外,还有很多类支持范型,比如Dictionary等,待定的类型还可以不止一个。简繁体翻译器。,Dictionary,Key-value Pair 键值对 作业:Dictionary性能测试 Dictionary: Add:添加,如果重复,则报错 索引器:可以重复设置,即使不存在也没关系,如果重复则保留最后一次的值 ContainsKey,判断是否存在这个Key,对话框、字符串、数组综合案例,选择成绩文件。计算平均分,查找某个学生的成绩。File.ReadAllLines,菜单、工具栏,主菜单(MenuStrip):分割线、快捷键、图标、子菜单、事件响应。 右键菜单(ContextMenuStr

20、ip) 工具栏ToolStrip 状态栏 StatusStrip,菜单工具栏案例,案例:自己动手写记事本。打开、保存、另存为、退出、剪切、复制、粘贴 带工具栏 练习:标题显示文件名 练习:状态栏中显示当前时间,调试(*理解)Debug,暂停(不知道程序现在运行到哪里了) 断点、设置断点 breakpoint 条件断点 命中次数断点 查看变量的值,查看表达式的值。红色、黑色,变量作用域,static void Main(string args) string name = “tom“;SayHello(); static void SayHello() Console.WriteLine(“我的

21、姓名是:0“,name); ,static void Main(string args) string name = “tom“;SayHello(); static void SayHello() string name = “jerry“;Console.WriteLine(“我的姓名是:0“,name); ,变量作用域,static void Main(string args) string name = “tom“;SayHello(); static void SayHello() string name = “jerry“;Console.WriteLine(“我的姓名是:0“,n

22、ame); ,变量名:变量名就像试验实例容器的编号,在一个实验室中,编号不能重复。如果去了更高一级的实验室,就不能和下属的实验室的容易编号重复。只要不出实验室,不同实验室之间的容器编号可以重复。,变量作用域2,string name = “tom“; if (name = “tom“) string name = “jerry“; ,int i; for (i = 0; i 10; i+) string name = i.ToString(); Console.WriteLine(“0“,i);,for (int i = 0; i 10; i+) string name =i.ToString

23、(); Console.WriteLine(“0“,name);,变量作用域2,for (int i = 0; i 10; i+) string name =i.ToString(); Console.WriteLine(“0“,i);,int i = 3; if (i 3) if (i 100)int i = 10; ,if (s=“a“) int i = 0; if (s=“b“) int i = 0; ,变量作用域2,static void SayHello(string name) string name = “lily“;Console.WriteLine(“我是0“,name); ,在同一个括号内变量定义不能重名,括号可以嵌套,但是通过函数的调用并不在这个范围内。,谢谢观赏,WPS Office,Make Presentation much more fun,WPS官方微博kingsoftwps,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报