文章目录
- 简介
- Windows窗体的基本属性
- 一、布局属性
- 1、StartPosition属性
- 2、Location属性
- 3、尺寸属性
- 4、WindowsState属性
- 5、Autoscroll属性
- 6、AutoSize属性
- 二、样式属性
- 1、ControlBox属性
- 2、MaximizeBox属性
- 3、MinimizeBox属性
- 4、HelpButton属性
- 5、ShowIcon属性
- 6、Icon属性
- 7、ShowInTaskbar属性
- 8、TopMost属性
- 9、IsMdiContainer属性
- 10、Opacity属性
- 11、MainMenuStrip属性
- 三、外观属性
- 1、Text属性
- 2、BackColor
- 3、BackgroundImage
- 4、BackgroundImageLayout
- 5、ForeColor
- 6、Font
- 7、Cursor
- 8、FormBorderStyle
- 4、行为属性
- 1、Enabled
- 2、ContextMenuStrip
- 3、AllowDrop
- 4、ImeMode
- 5、其他属性
- AcceptButton
- CancelButton
- KeyPreview
- 窗体的重要方法和事件
- 一、常用方法
- 1、Show
- 2、ShowDialog
- 3、Hide
- 4、Close
- 5、Refresh
- 6、Activate
- 二、常用事件
- 窗体行为和操作相关
- 1、Load
- 2、FromClosing
- 3、FromClosed
- 4、Click
- 5、DoubleClick
- 6、MouseClick
- 7、MouseDoubleClick
- 窗体布局、外观和焦点相关
- 1、Resize
- 2、Paint
- 3、Activated
- 4、Deactivated
- 窗体属性修改相关
- 1、TextChanged
- 2、LocationChanged
- 3、SizeChanged
- 4、BackClolorChanged
- 5、FontChanged
- 常用的输入输出方法
- 1、最简单的消息框
- 2、带标题的消息框
- 3、带标题、按钮的消息框
- 4、带标题、按钮、图标的消息框
|
简介
在windows窗体应用程序中,窗体是与用户交互的基本方式,是向用户展示信息的图形界面,窗体是Windows窗体应用程序的基本单元,一个窗体应用程序可以包含一个窗体或多个窗体。
窗体是存放各种控件的容器,一个Windows窗体包含了各种控件,如标签、文本框、按钮、下拉框等,这些控件是相对独立的用户界面元素,用来显示数据或接受数据输入,或者响应用户操作。
窗体也是对象,窗体类定义了生成窗体的模板,每实例化一个窗体类,就产生一个窗体。
using System.Windows.Forms
命名空间中定义的Form
类是所有窗体的基类,Form
类被认为是对windows窗体的抽象。
所谓窗体,就是Windows的窗口,一个应用程序除了需要实现应有的功能外,还必须具有良好的用户界面。在C#中Windows应用程序的界面是以窗体为基础的,窗体是Windows应用程序的基本单位,用来向用户展示和接受用户的输入。
Windows窗体的基本属性
Windows窗体的属性决定了窗体的布局、样式、外观、行为等可视化特征。通过代码可以对这些属性进行设置和修改,但是更方便的做法是在属性编辑器窗口进行设置和修改。
一、布局属性
1、StartPosition属性
用来获取或设置程序运行时窗体的初始显示位置,该属性有5个可选属性值,默认值为WindowsDefaultLocation
如下表所示:
属性值 | 说明 |
---|---|
Manual | 窗体的初始显示位置由Location属性决定 |
CenterScreen | 窗体定位在当前显示屏幕窗口中居中,其尺寸在窗体大小Size中指定 |
WindowsDefaultLocation | 窗体定位在windows默认位置,其尺寸在窗体大小Size中指定 |
WindowsDefaultBounds | 窗体定位在windows默认位置,其边界也由windows默认指定 |
CenterParent | 窗体在其父窗体中居中位置 |
2、Location属性
获取或者设置显示时其左上角在桌面上的坐标,默认值为(0,0)。
3、尺寸属性
Size、MaximizeSize、MinimizeSize,分别表示窗体正常显示、最大化、最小化时的尺寸,他们分别包含窗体宽度Width
和高度Height
两个子项。
4、WindowsState属性
用来获取或设置窗体显示时的初始状态。默认为Normal
可选属性值如下表:
属性值 | 说明 |
---|---|
Normal | 表示窗体正常显示 |
Minimized | 窗体以最小化显示形态 |
Maximized | 窗体以最大化显示形态 |
5、Autoscroll属性
用来获取或设置一个值,该值指示当任何控件位于窗体工作区以外时,是否会在该窗体上自动显示滚动条,默认为False。
6、AutoSize属性
当无法全部显示窗体中的控件时是否自动调整窗体大小,默认值为False。
二、样式属性
窗体中有多个与标题栏有关的样式属性,他们大多为布尔类型。
1、ControlBox属性
用来获取或设置一个值,该值指示在该窗体的标题栏中、窗口左角处是否显示控制菜单,值为True
时将显示该控制菜单,为False
时不显示,默认值为True
。
2、MaximizeBox属性
用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮,值为True
时将显示该按钮,为False
时不显示,默认值为True
。
3、MinimizeBox属性
用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮,值为True
时将显示该按钮,为False
时不显示,默认值为True
。
4、HelpButton属性
用来获取或设置一个值,该值指示是否在窗体的标题栏中显示帮助按钮,值为True
时将显示该按钮,为False
时不显示,默认值为True
。
5、ShowIcon属性
用来获取或设置一个值,该值指示是否在窗体的标题栏中是否显示图标,值为True
时将显示图标,为False
时不显示,默认值为True
。
6、Icon属性
获取或设置窗体标题栏中的图标。
7、ShowInTaskbar属性
用来获取或设置一个值,该值指示是否在Windows任务栏中显示窗体,默认值为True
。
8、TopMost属性
用来获取或设置一个值,该值指示该窗体是否为最顶层窗体。最顶层窗体始终显示在桌面的最上层,即使该窗体不是当前活动窗体,默认值为False
。
9、IsMdiContainer属性
用来获取或设置一个值,该值指示窗体是否为多文档界面中的子窗体的容器。值为True
时,窗体是子窗体的容器,为False
时,不是子窗体的容器,默认值为False
。
10、Opacity属性
获取或设置窗体的不透明度,默认为100%,实际应用中,可以通过该属性给窗体增加一些类似半透明等的特殊效果。
11、MainMenuStrip属性
设置窗体的主菜单,在窗体中添加MenuStrip控件时,Visual Studio .NET会自动完成该属性设置。
三、外观属性
1、Text属性
该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示文字。
2、BackColor
用来获取或设置窗体的背景色。
3、BackgroundImage
用来获取或设置窗体的背景图片。
4、BackgroundImageLayout
设置背景图的显示布局,可选属性值为平铺Tile
、居中Center
、拉伸Stretch
和放大Zoom
,默认为Tile
。
5、ForeColor
用来获取或设置控件的前景色。
6、Font
获取或设置窗体中显示的文字的字体
7、Cursor
获取或设置当鼠标指针位于窗体上时显示的光标。
8、FormBorderStyle
获取或设置窗体的边框样式,该属性有7个可选值,默认值为Sizable。开发人员可以通过设置该属性值为none,实现隐藏窗体标题栏的功能。
属性值 | 说明 |
---|---|
None | 窗体无边框 |
FixedSingle | 固定的单行边框 |
Fixed3D | 固定的三维边框 |
FixedDialog | 固定的对话框式的粗边框 |
Sizable | 可调整大小的边框 |
FixedToolWindow | 固定大小的工具窗口边框 |
SizableToolWindow | 可调整大小的工具窗口边框 |
4、行为属性
1、Enabled
用来获取或设置一个值,该值指示窗口是否可用,即是否可以对用户交互做出响应。默认值为True
。
2、ContextMenuStrip
设置窗体的右键快捷菜单,需要先添加ContextMenuStrip
控件,才能设置该属性。
3、AllowDrop
用来获取或设置一个值,该值指示窗口是否可以接受用户拖放到它上面的数据。默认值为False
。
4、ImeMode
获取或设置控件的输入法编辑器IME模式。
5、其他属性
AcceptButton
该属性用来获取或设置一个值,该值是一个按钮的名称,当按【Enter】键时就相当于单击了窗体上的该按钮。
CancelButton
该属性用来获取或设置一个值,该值是一个按钮的名称,当按【Esc】键时就相当于单击了窗体上的该按钮。
KeyPreview
该属性用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否接受该事件。值为True时,窗口将接受按键事件,值为False时,窗体不接受按键事件。
窗体的重要方法和事件
一、常用方法
1、Show
该方法的作用是让窗体显示出来
- 语法格式如下:
窗体名.Show();
其中窗体名是要显示的窗体名称。
例如使用show
方法显示Form1
窗体,代码如下。From1 frm = new Form1(); frm.Show();
2、ShowDialog
该方法的作用是将窗口显示为模态对话框
模态窗口就是在该窗口关闭之前,其父窗口不可能成为活动窗口的那种窗口。举个例子:
窗口A弹出窗口B,如果窗口B是模态的,在窗口B关闭前就不可能切换到窗口A;如果B是非模态的,那可以在这两个窗口之间任意切换。
它一般用来显示提示信息和接受用户的输入。对话框不能独立存在。目前有两种对话框,分别为:模态对话框 和 非模态对话框。
模态对话框在显示之后,就不能对同一个程序中的其它窗口进行操作。
非模态对话框在显示之后,还可以对同一个程序的其它窗口进行操作。- 语法格式如下:
窗体名.ShowDialog();
其中窗体名是要显示的窗体名称。
3、Hide
该方法的作用是把窗体隐藏起来,但不销毁窗体,也不释放资源,可以使用
Show
方法重新显示。- 语法格式如下:
窗体名.Hide();
其中窗体名是要隐藏的窗体名称。
4、Close
该方法的作用是把窗体关闭。
- 语法格式如下:
窗体名.Close();
其中窗体名是要关闭的窗体名称。
5、Refresh
该方法的作用是刷新并重画窗体。
- 语法格式如下:
窗体名.Refresh();
其中窗体名是要刷新的窗体名称。
6、Activate
该方法的作用是激活窗体并给予它焦点。
- 语法格式如下:
窗体名.Activate();
其中窗体名是要激活的窗体名称。
二、常用事件
与窗体有关的事件有很多,Visual Studio的“属性”编辑窗口中“事件”选项页列出了所有这些事件。
窗体有关的事件被引发后,程序将转入执行与该事件对应的事件响应函数。开发人员可以通过双击“属性”编辑窗口中某事件后的空白框,让Visual Studio自动生成该事件对应的的事件响应函数,生成的函数初始内容是空白的,可以通过添加相应的功能代码,实现相应的功能。窗体行为和操作相关
其中,与窗体行为和操作有关的常用事件有以下几种:
1、Load
窗体在首次启动、加载到内存时将引发该事件,即在第一次显示窗体前发生。
2、FromClosing
窗体在关闭过程中将引发该事件。
3、FromClosed
窗体在关闭后将引发该事件。
4、Click
用户单击该窗体时将引发该事件。
5、DoubleClick
用户双击该窗体时将引发该事件。
6、MouseClick
单击该窗体时将引发该事件。
7、MouseDoubleClick
双击该窗体时将引发该事件。
窗体布局、外观和焦点相关
1、Resize
窗体大小改变时将引发该事件。
2、Paint
重绘窗体时将引发该事件。
3、Activated
窗体得到焦点后,即窗口激活时将引发该事件。
4、Deactivated
窗体失去焦点后,成为不活动窗体时将引发该事件。
窗体属性修改相关
1、TextChanged
窗体的标题文本被更改时将引发该事件。
2、LocationChanged
窗体的位置被更改时将引发该事件。
3、SizeChanged
窗体的大小被更改时将引发该事件。
4、BackClolorChanged
窗体的背景颜色被更改时将引发该事件。
5、FontChanged
窗体的字体被更改时将引发该事件。
常用的输入输出方法
在Windows应用程序中,用户经常需要输入信息和输出信息。
常用的可接受信息的控件有Lable控件、TextBox控件等。
MessageBox是一个消息框对象。要创建消息框,需要调用MessageBox的Show方法实现,而Show方法有很多重载方式,常用的有以下四种方式。1、最简单的消息框
- 语法格式如下:
MessageBox.Show("消息内容");
2、带标题的消息框
- 语法格式如下:
MessageBox.Show("消息内容","消息框标题");
3、带标题、按钮的消息框
- 语法格式如下:
MessageBox.Show("消息内容","消息框标题",消息框按钮);
例如
MessageBox.Show("确定当前参数:" + dIn_FirsPhotoYPos.Value.ToString(), "提示", MessageBoxButtons.OKCancel)
4、带标题、按钮、图标的消息框
- 语法格式如下:
MessageBox.Show("消息内容","消息框标题",消息框按钮,消息框图标);
------------------------------------------------------------------------------------------分割线 ------------------------------------------------------------------------------------------
- 博主简介:
- 工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。 博主邮箱:2296776525@qq.com
- 帮忙点个赞吧。哈哈。