1¥ 排列窗体上的控件
1$ 对齐 选择要对齐的窗体控件 在VS的菜单中,选择“格式”à“对齐”选项 所选择的第一个控件是主控件,其他控件和它对齐
2$ 使用Anchor(锚定) 设置控件相对于窗体的某个边缘的距离保持不变,即: 与窗体一起动态调整控件的大小 步骤: 选择要锚定的控件 在“属性”单击Anchor属性右边的箭头,显示编辑器 在显示的十字形上选择或清除控件锚定的边 单击Anchor属性名,关闭编辑器 另外: Ctrl选择多个窗体,一起锚定多个控件。
3$ 使用Dock(停靠) 让控件始终保持在窗体的边缘,或者填充窗体 步骤:选择要停靠的控件 在“属性”窗口中单击Dock属性右侧箭头,显示编辑器 设置停靠方式
2¥ 创建多文档界面应用程序(MDI)
1$ MDI和SDI SDI(Single Document Interface)单文档界面: 一次只能在窗口中打开一个文件,如想打开另一个,须关掉前一个。 如:记事本 MDI(Multi Document Interface)多文档界面: 同时打开多个文档,不需打开新的窗口 窗体被设置为父窗体后,背景颜色明显变深。 MDI由两种窗口组成:父窗口和子窗口MDI的显著特点: @ 启动一个MDI应用程序时,首先显示父窗体。 @ 它是应用程序中所有其他窗口的容器 @ 每个应用程序界面都只能有一个MDI父窗体 @ 在任何指定的时间都可以打开多个子窗体 @ 任何MDI子窗体都不能移出MDI框架区 @ 关闭MDI父窗体则自动关闭所有打开的子窗体
2$ 如何创建MDI
1.。创建MDI 1)设置父窗体:将父窗体的IsMDIContainer属性设置为True。 2)设置子窗体:在调用打开子窗体的Show()方法前,在代码中将 窗体的MdiParent属性设为this。 如://创建窗体对象 AddStudentForm addStudentForm = new AddStudentForm(); addStudentForm.MdiParent = this; //父窗体是当前窗体 addStudentForm.Show(); //显示创建学员用户窗体
2.。为父窗体添加子窗体列表 1)在父窗体中添加一个菜单栏 2)在菜单栏中,添加一个要显示子窗体列表的菜单项,命名为 --“窗口” 3)将整个菜单栏控件的MdiWindowListItem属性选设为 “窗口”菜单项对应的Name值。 MdiWindowListItem功能为在下拉菜单中显示所有子窗体
3¥ 使用WinForm高级控件
1.。工具条控件(ToolStrip)和状态条控件(StatusStrip) 工具条:用于创建功能强大的工具栏,可以包含多个按钮、标签、 下拉按钮、文本框、组合框等,可以显示文字、图片或文 字加图片。 状态条:常放在窗体底部,显示一些基本信息,可以包含标签、下 拉按钮等。 工具条和状态条的主要属性: ImageScalingSize:工具条或状态条中的项显示的图像的大小 Items:在工具条或状态条上显示的项的集合 工具条或状态条上的按钮和标签的主要属性和事件: 主要属性: DisplayStyle:设置图像和文本是否同时显示、只显示一种、 都不显示(ImageAndText同时显示) Image: 按钮/标签上的图片 Text: 按钮/标签上显示的文本 重要事件: Click:单击按钮/标签时,触发该事件。另外:在MenuStrip、ToolStrip、StatusStrip控件上单击右键 选择“编辑项”按钮,则可设置菜单项的显示样式。 DropDownButton—工具条控件中的下拉菜单按钮 StatuLabel—状态条控件中的增加标签 添加好的工具条项转换为其他形式: 选中某工具条项,右键选择“转换为”选择需要的即可。
4¥ 使用选项卡控件(TabControl) 显示多个选项卡页,最重要的属性是TabPages. Tabpages:包含的选项卡页的集合 MulliLine 是否可以显示多行选项卡 SelectedIndex:当前所选选项卡的索引值
5¥ 使用图片框、图像列表、计时器控件
图片框(PictureBox) 用于显示位图、GIF、JPEG等格式的图片或者图标 Image:图片框显示的图像 SizeMode:指定如何处理图片的位置和控件的大小 AutoSize显示实际大小 StretchImage平铺显示,即以PictureBox大小显示。
图片列表(ImageList) 用于存储Windows窗体其他控件使用的图像 Images:存储在图像列表中的所有图像 ImageSize:图像列表中图像的大小 TranspareColor:被视为透明的颜色
特别注意: Images中存放的图像就像存放在数组中一样,每个图像都有一个索引值,从0开始使用,用于定位图像。形如:Image[索引值] 可以调用图像数组的长度属性表示图像位置: “图像列表名。Images。Count – 1”
计时器控件(Timer) 让程序每个一定的时间重复做一件事 通过Interval属性设置每个多长时间引发一次事件 每次引发事件要执行的代码就写在Tick事件的处理程序中 计时器的主要属性和事件: 属性: interval 事件发生的频率,以毫秒为单位 Enabled 是否定是引发事件 事件: Tick 每当指定时间发生的事件 方法: Start() 启动计时器 Stop() 停止计时器
6¥ 模式窗体和无模式窗体 模式窗体:当窗体显示时禁止访问应用程序的其他部分, 如:须用户确认的窗体 无模式窗体:当窗体显示时,允许使用应用程序的其他部分 如:EXCEL里同时打开多个表格文件
特别注意:ShowDialog();方法可以窗体显示为模式窗体 Show(); 方法可以将窗体显示为无模式窗体 如果已经是父窗口,绝对不能使用ShowDialog()显示
7¥ 用户输入的验证
1$ 应定义一个返回值为布尔类型的方法,用于用户输入成功与否的判定。 书上用的是:ValidataInput(),作为“登录”按钮的Click事件调用。
2$ Focus()方法: 任何一个控件都可以通过控件名调用Focus()方法, 使焦点停在某个控件上或文本框中,帮助用户找到应输入的位置。
8¥ 窗体间的数据传输
1$ C#中的字段 类似于Java中的属性,即类中的成员变量
2$ C#中的静态变量(static) 把变量设为静态的,可以通过类名直接调用
3$ 将窗体设置为隐藏 使用语句: this.Visible = false; 意为:改变当前窗体的Visible属性值为false
4$ 设置窗体的Load事件 类似于Click事件,用于窗体载入某项内容 如:让主窗体状态栏中显示当前登录用户的用户名,详见p139 第五步
另外:
1)显示一个窗体的标准语句: Application.Run(new 窗体文件名());
2)按住Ctrl,拖动控件可以实现窗体中的控件复制
3)在菜单条中加带下划线的字母,如(P)要带下划线,用(&P)输入
4)菜单项中的横线用于分割上下不同的菜单项,打“-”减号后回车即可
5)在工具箱中双击工具图标,效果等于拖拽
6)group的重要作用之一是,不同的rdo控件在不同的group中被视为不 同的rdo组,分别不能同时选中。
7 ) cbo 控件中, DropDownStyle 属性中参数 若为 DropDown 时,可以自由输入。 若为 DropDownList 时,不可在空白处随意输入。