




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章 创建windows应用程序 7.1 point类 7.2 size类 7.3 new运算符 7.4 form类的属性 7.5 form类的方法 7.6 form类的事件 7.7 sub main()和application.exit() 说明:所有例子作为上机作业,必须独立完成说明:所有例子作为上机作业,必须独立完成 。 7.1 point类 1、说明:point类是一个结构类型,表示平 面坐标系的一个点(x,y)。 2、使用:定义point类对象(变量)的方法 dim p1 as new point(5,10) dim p2 as new point(15,20) dim p1,p2 as new point(5,10) 语法错误 7.1 point类 3、point类的方法(函数): - 方法(函数) 调用返回值 - isempty()p1.isempty()true/false xp1.xx坐标 yp1.yy坐标 equals()p1.equals(p2)true/false - 7.1 point类 4、举例: dim p1 as new point(5,10) dim p2 as new point(15,20) dim result as bollean dim a,b as integer a=p1.xa=5 b=p1.yb=10 result=p1.equals(p2) if p1.equals(p2)=true then . endif me.location=p1 7.2 size类 1、说明:size类表示一个宽度和一个高度 (width,height)。 2、使用:定义size类对象(变量)的方法 dim s1 as new size(400,400) dim s2 as new size(150,200) dim s1,s2 as new size(5,10) 语法错误 7.2 size类 3、size类的方法(函数): - 方法(函数) 调用返回值 - isempty()s1.isempty()true/false widths1.width宽度 heights1.heigh高度 equals()s1.equals(s2)true/false - 7.2 size类 4、举例: dim s1 as new size(400,400) dim s2 as new size(150,200) dim result as bollean dim a,b as integer a=s1.widtha=5 b=s1.heightb=10 result=s1.equals(s2) if s1.equals(s2)=true then . endif me.size=s1 me.maximumsize=s1 7.3 new运算 1、说明:new运算用于创建新对象。 2、使用:dim 对象名 new 类名(参数) 类名(参数)叫做构造函数。 比如用于定义point或 size类的对象(变量): dim p1 as new point(400,400) dim s2 as new size(150,200) 3、new的例子:运行时创建新按钮。 dim okbtn as new button okbtn.text=“ok“ okbtn.location=new point(50,50) 控件也可以在运行时建立。 7.3 new运算 4、new的例子:运行时创建新按钮,并且 将新按钮设为关闭按钮。(了解) q创建新项目 q打开代码窗口,增加对象定义语句 withevents okbtn as new button q增加窗体“click”处理过程,在其中增加代码: okbtn.text=“ok“ okbtn.location=new point(50,50) me.controls.add(okbtn) 7.3 new运算 q在代码窗口中增加okbtn的“click”处理过程 private sub button1_click( byval sender as system.object, byval e as system.eventargs ) handles okbtn.click me.close() end sub q运行效果:单击窗体出现“ok”按钮,单击“ok”按 钮,窗体关闭。 q本例在第八章有另外解决方法。 7.4 form类的属性 q说明:form类属性众多,选择重要的介 绍。 q查看属性:单击设计窗口中的窗体,可以 在属性窗口中看到form类的所有属性。 q属性含义:属性窗口中下部由属性解释小 窗口,用于简单解释每个属性的含义和作 用。 7.4 form类的属性 1、窗体边界属性:formborderstyle q类型:枚举formborderstyle。 q值:p80表7-1 qnone qfixedsingle qfixed3d qfixeddialog qsizable qfixedtoolwindow qsizabletoolwindow q例子: me.formborderstyle= formborderstyle.none 2、窗体控制按钮属性: maximizebox - 最大化按钮 minimizebox - 最小化按钮 controlbox - 左上角按钮(系统菜单) helpbutton - ?按钮 n逻辑值:true,false n例子: me.maximizebox=false me.controlbox=false nhelpbutton与maximizebox不同时出现。 7.4 form类的属性 3、窗体外观属性: text - 窗体标题 q字符串值 q例子: me.text=”how are you” 7.4 form类的属性 3、窗体外观属性: forecolor - 前景色 backcolor - 背景色 q枚举值:系统、web、自定义 q例子: me.backcolor=system.drawing.systemcolors. _ controllightlight 或者 imports system.drawing.systemcolors me.backcolor=controllightlight 7.4 form类的属性 3、窗体外观属性: cursor - 鼠标形状 qp81-82表7-4 q例子: me.cursor=cursors.arrow me.cursor=cursors.default me.cursor=cursors.waitcursor me.cursor=cursors.cross me.cursor=cursors.hand 7.4 form类的属性 3、窗体外观属性: font 窗体上字体 q例子: me.font = new system.drawing.font ( “仿宋_gb2312“, 12.0!, system.drawing.fontstyle.bold, system.drawing.graphicsunit.point, ctype(134, byte) ) 7.4 form类的属性 3、窗体外观属性: font是组合属性。 qfont子属性:name、size、bold、italic、 undeline 等等,是只读属性。 q使用子属性: msgbox(me. font .name) msgbox(me. font .size) msgbox(me. font .bold) msgbox(me. font .italic) msgbox(me. font .undeline) me. font .name=”黑体” 错误 7.4 form类的属性 7.4 form类的属性 3、窗体外观属性: icon: q显示在窗体左上角的图标。 qicon也是组合属性,其子属性可查看属性窗口。 qicon文件后缀是 .ico,vs.net提供了许多icon 文件。 代码例子: me.icon =new system.drawing.icon(”文件名.ico”) 注:将icon文件与.exe文件放在一起。 3、窗体外观属性: backgroundimage 背景图案 例子: me.backgroundimage = system.drawing.bitmap(图像文件名) 注:将图像文件与.exe文件放在一起。 7.4 form类的属性 4、窗体动作属性: q acceptbutton 指定默认选中的button控件,其上有虚 线框,按enter键它会响应。 q在代码中使用: me.acceptbutton=okbtn okbtn是button的名字(name) 7.4 form类的属性 4、窗体动作属性: qcancel button:窗体上某个button 控件,按esc键它会响应。 q在代码中使用: me.cancelbutton=cancelbtn cancelbtn是button的名字(name) 7.4 form类的属性 4、窗体动作属性: qshowintaskbar: 布尔值,默认值 true。确定是否在任务栏中显示图 标。如果选择为false,则最小化时 显示在左下角。 q在代码中使用: me.showintaskbar=false 7.4 form类的属性 4、窗体动作属性: qtopmost: 布尔值,确定窗体是否永 远在最前面。默认值false。 q在代码中使用: me.topmost=false或true 7.4 form类的属性 4、窗体动作属性: qautoscroll-布尔值,确定窗体是否 根据需要显示滚动条。默认值false 。 q在代码中使用: me.autoscroll=false 或true 7.4 form类的属性 5、窗体规划设计属性:在设计过程中 使用,不能在代码中使用。 qdrawgrid-布尔值,窗体上是否显示 网格。 qgridsize-size类型,指定网格尺寸 。 qsnaptogrid-布尔值,窗体上控件是 否与网格线对齐。 qlocked-布尔值,窗体或控件窗体是 否能被改变。 7.4 form类的属性 6、窗体的(name)属性: q窗体对象的名字,可以修改。 q默认的启动窗体的name是form1 q修改form1 的名字后,必须指定启 动窗体,否则编译出错。 q指定启动窗体方法: 解决方案管理器窗口|属性|一般|启 动对象|确定 7.4 form类的属性 7.4 form类的属性 7、enable属性: q启用:enable=true q禁用:enable=false,窗体上所有控件 均不可用。 8、tag属性: qobject类型 q任意赋值 q不影响窗体外观和行为。 1、增加新窗体: q菜单操作: 文件|添加新项|windows窗体 项目|添加windows窗体 q增加新窗体数量:不限。 2、窗体类型: q模态窗口:显示后用户不能切换到本应用程序的 其它窗口,只能自行关闭窗口,关闭后可以返回 值。 q非模态窗口:显示后用户能切换到本应用程序的 其它窗口,可以自行关闭也可以由别的窗体来关 闭。 7.5 form类的方法 3、显示/关闭模态窗体: q显示方法名:showdialog()。在父窗体 中使用。 q返回值:dialogresult枚举,标识用户按 了哪一个按钮。 abortcancelignorenonone okretryyes q关闭方法名:close()。在自创体中使用 。关闭前根据需要返回dialogresult,供 父窗体使用。 7.5 form类的方法 3、显示/关闭模态窗体: q建新窗体form2。 q显示部分:父窗体 form1打开子窗体f2 。代码如下。 dim result as dialogresult dim f2 as new form2() result=f2.showdialog() select case result处理f2返回值 case dialogresult.ok end select 7.5 form类的方法 3、显示/关闭模态窗体: q关闭部分:在子窗体f2中,关闭前返回值 给父窗体。 q关闭方法1:用form2中自行设计的按钮 ,比如一个ok按钮,增加代码如下。 me.dialogresult=dialogresult.ok me.close() q关闭方法2:使用form2窗体右上角的x按 钮,不必写任何代码,返回值为?。 7.5 form类的方法 4、显示/关闭非模态窗体: q非模态窗口:显示后用户能切换到本应用 程序的其它窗口。 q显示方法名:show(),无返回值。 q举例:建新窗体form2。 q显示部分:父窗体 form1打开子窗体f2 。代码如下。 dim f2 as new form2() f2.show() 7.5 form类的方法 4、显示/关闭非模态窗体: q关闭方法名:close(),关闭窗体,而且 销毁。最后一个窗体被关闭时,整个程序 结束。 q子窗体自行关闭: me.close() q在父窗体中关闭: dim f2 as new form1() f2.show() f2.close() 7.5 form类的方法 4、隐藏窗体: q方法名:hide(),隐藏窗体,但不销毁。 q举例: dim f1 as new form1() f1.show() f1.hide() 7.5 form类的方法 5、重画窗体: q方法名:refresh(),重新刷新窗体和它 上面的所有控件。 q举例: dim f1 as new form1() f1.show() f1.refresh() 7.5 form类的方法 7.5 form类的方法 6、窗体的z轴: q定义:如果多个窗体在屏幕上重叠,其重叠 顺序称为z轴。 q默认z轴:由窗体出现添加顺序决定。 q指定z轴: qbringtofront() qsendtoback() q注意:只能指定z轴顶部或底部。 7、了解其他方法: q方法名: activate() contains() getchildatpoint() resetxxxx(): xxxx=cursor、font、forecolor、 backcolor。 7.5 form类的方法 7、例子1:父窗体打开/关闭一个模态子窗体。 q功能:父窗体打开/关闭一个模态子窗体,并 取得子窗体的按钮值。模态子窗体中有ok、 cancel按钮。(上机作业) q建立新项目。 q在form1中增加新按钮:“打开子窗体”。 q建立新窗体form2。 q在form2中增加两个新按钮: q“关闭自己返回ok”。 q“关闭自己返回cancel”。 7.5 form类的方法 7、例子1:父窗体打开/关闭一个模态子窗体。 q在form1代码窗口中建立按钮“打开子窗体”。 的单击事件处理过程,并添加代码: dim result as dialogresult dim f2 as new form2() result=f2.showdialog() select case result处理f2返回值 case dialogresult.ok msgbox(“返回ok”) case . end select 7.5 form类的方法 7、例子1:父窗体打开/关闭一个模态子窗体。 q在form2代码窗口中建立按钮“关闭自己返回 ok”的单击事件处理过程,并添加代码: me.dialogresult= dialogresult.ok me.close() q在form2代码窗口中建立按钮“关闭自己返回 cancel”的单击事件处理过程,并添加代码: me.dialogresult= dialogresult.cancel me.close() q编译运行。 7.5 form类的方法 7、例子1:父窗体打开/关闭一个模态子窗体。 q运行效果: q打开:在form1按钮打开form2, qform2显示时form1不活动。 q关闭:在form2中按钮关闭自己,返回form1。 qfrom1知道form2关闭前按了什么按钮,并显示 一个对话框。 q用处:写类似选项之类的对话窗体。 q要求:掌握,上机试验。 7.5 form类的方法 8、例子2:父窗体打开/关闭多个相同的非模 态子窗体。 (上机作业) q功能: q打开/关闭多个相同的非模态子窗体。 q子窗体可以自行关闭也可以由父窗体来关闭。 q主窗体可以关闭程序 q子窗体也可以关闭程序 7.5 form类的方法 q建立新项目。 q在form1中增加新按钮: q“打开子窗体”。 q“关闭子窗体”。 q建立新窗体form2。 q在form2中增加新按钮: q“关闭自己”。 q“结束程序”。 7.5 form类的方法 q在form1代码窗口中定义全局变量 dim f2(10) as form dim i as integer q在form1代码窗口中建立按钮“打开子窗体”。 的单击事件处理过程,并添加代码: if i 0 then f2(i).close() i -= 1 end if 7.5 form类的方法 q在form2代码窗口中建立按钮“关闭自己”的单 击事件处理过程,并添加代码: me.close() q在form2代码窗口中建立按钮“结束程序”的单 击事件处理过程,并添加代码: application.exit() 7.5 form类的方法 q运行效果: q打开:在form1按钮打开form2。 q打开:可以同时打开多个form2。 qform2显示时form1依旧活动。 q关闭:在form2中按钮关闭自己。 q关闭:在form1中按钮关闭form2。 q关闭:关闭form1则关闭所有form2。 q关闭:按form2中“关闭程序”按钮,关闭 整个程序。 q用处:写类似聊天/私聊之类的窗体。 7.5 form类的方法 q事件来源:主要是键盘或鼠标。对于不同的 控件,可能发生的事件不一定相同,但许多 事件是对很多控件都适用。 qform类的事件列表-表7-10 q事件处理过程框架自动产生:在代码窗口中 手工选择对象和事件。 q事件处理过程基本语法: private sub 过程名(参数表)handles 对象名.事件名,对象名.事件名 7.6 事件处理过程 q参数表:根据不同的事件而不同,.net自动设 置默认参数表。其中一般会有一个object类型 的参数,表示接受事件的对象,另有参数包含事 件的信息。 q虽然事件处理过程中不一定都使用默认的参数, 但是默认参数表不能改变。 q过程名:一般格式是 对象名_事件名 过程名可以随意改变。 7.6 事件处理过程 qhandles后面的对象名.事件名决定过程处理 的事件,可以改变。 q一个处理过程处理多个事件可以写成 private sub mysub( byval sender as object, byval e as system.eventargs ) handles button1.click, button2.click q注意:只能处理不同对象的相同的事件,而且事件 必须有相同的参数表。 q不能处理不同对象或同一对象的不同事件。 q参数e的使用见第八章。参数sender的使用如下例 。 7.6 事件处理过程 q例子:参数sender的使用(简化计算器编程)。 q建立新项目,增加两个按钮button1和button2。 q打开代码窗口,增加代码 private sub mysub( byval sender as object, byval e as system.eventargs ) handles button1.click, button2.click if = “button1“ then msgbox(“1“) elseif = “button2“ then msgbox(“2“) end if end sub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中数学 第3章 圆锥曲线的方程 3.1 椭圆 3.1.1 椭圆及其标准方程说课稿 新人教A版选择性必修第一册
- 2025大学生综合保险合同范本
- 2025私人租房合同范本自由交易版
- 2025年个体门面租赁合同简易版范本
- 第五节 同一直线上二力的合成说课稿-2025-2026学年初中物理北师大版北京2024八年级全一册-北师大版北京2024
- 2025《合同法》变革风暴
- 第11课 目录和封底的制作教学设计-2023-2024学年小学信息技术(信息科技)四年级上册粤教粤科版
- 2025年度土地使用权入股种植树木合同书
- 2025官方的个人购房合同
- 铜陵事业单位笔试真题2025
- 加气站风控分级管理制度
- 工程机械发动机课件
- 动物素描阅读试题及答案
- JG/T 511-2017建筑用发泡陶瓷保温板
- T/JSWP 04-2022广告企业信用评价规范
- DB3405T 0007-2024老旧小区海绵城市改造技术规范
- 道路工程运营方案
- GB 45669.4-2025黄河流域工业用水定额第4部分:水泥
- 消化诊断内镜技术操作规范2023版
- 医疗机构小儿推拿技术规范-公示稿
- 焊接过程化学反应
评论
0/150
提交评论