C# WinForm —— 07 Form窗体介绍

Form简介

  • 可视化的图面,显示信息。
  • 通常由 添加的控件 和 操作的响应 构成。
  • 继承于 Form ------ System.Windows.Forms.Form 窗口或对话框
  • 可以在代码和窗体设计文件之间相互切换:
    1)在代码页面右键 → "查看设计器" → 切换到窗体界面;
    2)在窗体界面右键 → "查看代码" → "切换到代码页面"
  • 点击窗体,查看属性,窗体的 (Name)属性的值 和 代码页面的类名 一致


    上面的 partial 的意思是这里的代码内容只是 FrmUser类的一部分,编译的时候会和其他部分一起编译成一个FrmUser类。也就是说一个类的内容可以写在不同的地方。

下面这个是文件名,当修改文件名时,窗体的 (Name)属性的值 和 代码页面的类名 都会随之修改。

  • InitializeComponent()函数是窗体的初始化函数,里面主要定义了一些窗体和控件的属性,触发的事件/方法等,是 根据用户在属性里设置的内容 自动生成的

  • 当 窗体 在文件夹下面的时候,调用时,需要用 "文件夹名字.窗体"

常用属性

1. 在属性面板可以设置的属性:

  1. (Name)属性:指示代码中用来标识该对象的名称,相当于一个身份ID,QQ号
  2. AcceptButton:窗体的接受按钮。如果设置了此按钮,则用户每次按"Enter"键都相当于单机这个按钮。可能是用户登录界面会用到,比如当用户输入用户名和密码之后,按回车 相当于 点击 登录 键。
  3. CancelButton:窗体的取消按钮。如果设置了此属性,则用户每次按"Esc"键都相当于单机这个按钮。
  4. AutoScroll:指示当控件内容大于它的可见区域时,是否自动显示滚动条。
  5. AutoSize:指定控件是否自动调整自身的大小以适应其内容的大小。
  6. BackColor:组件的背景色
  7. BackgroundImage:用于该控件的背景图像
  8. BackgroundImageLayout:用于组件的背景图像布局,比如:None无, Tile, Center居中, Stretch拉伸, Zoom自动缩放
  9. ContextMenuStrip:当用户右键 该控件时,显示的快捷菜单
  10. ControlBox:确定窗体是否有"控件/系统"菜单框,就是右上角的最大化、最小化、关闭按钮
  11. Enabled:指示是否已启用该控件,如果不启用的话,无法对控件做任何操作
  12. Font:字体大小、类型设置
  13. ForeColor:窗体的前景色,用于显示文本
  14. FormBorderStyle:指示窗体的边框和标题栏的外观和行为,如:None,Sizable大小可调整,FixedSingle大小不可调整,Fixed3D大小不可调整,FixedDialog,FixedToolWindow,SizableToolWindow
  15. Maximum:确定窗体标题栏的右上角最大化框是否可用。
  16. MaximizeBox:确定窗体标题栏的右上角是否有最大化框
  17. MinimizeBox:确定窗体标题栏的右上角是否有最小化框
  18. Opacity:控件的不透明度百分比
  19. Padding:指定控件的内部间距
  20. Icon:指示窗体的图标。在窗体的系统菜单框中显示,以及当窗体最小化时显示。加载的图标文件需要是 .ico 格式的
  21. ShowIcon:指示是否在窗体的标题栏中显示图标
  22. IsMdiContainer:确定该窗体是否是MDI容器,是否可以在窗体里面显示其他子窗体,并且里面的子窗体只能在该窗体内拖动,不能拖出去。有些软件界面在一个窗体内可以显示其他窗体。
  23. Location:控件左上角相当于其容器左上角的坐标。
  24. Size:控件的大小,以像素为单位
  25. StartPosition:确定窗体第一次出现时的位置:Manual,CenterScreen屏幕中央,WindowsDefaultLocation(默认),WindowsDefaultBounds,CenterParent显示在父容器的中央。
  26. Tag:与对象关联的用户定义数据,比如初始化窗体时传递的一些绑定的数据、关联的数据,整型值,字符串,对象,实体类等,是一个object类
  27. TopMost:指示该窗体是否始终显示在此属性未设置为true的所有其他窗体之上。
  28. WindowState:确定窗体的初始可视状态,Normal正常状态,Minimized最小化,Maximized最大化

2. 在代码里设置属性


这时,"确定"按钮不会显示在窗体界面中,只有当运行代码的时候,"确定"按钮才会显示出来。

常用方法

  1. 实例化 :FrmUser fUser = new FrmUser();
  2. 显示窗体的方法
    1. Show():显示窗体
    2. ShowDialog():模式化窗体打开,当ShowDialog显示的窗体未关闭时,其他窗体是无法响应/操作的
  3. 激活窗体的方法:fUser.Activate(); 当窗体失去焦点的时候,可以用于激活窗体。失去焦点的意思就是:当新打开了窗体后,用户在新窗体上操作,原来的窗体就失去焦点了。
  4. 关闭窗体:Close()方法
  5. 隐藏窗体:Hide()方法

常用事件

  1. Load事件:加载窗体时,触发的函数
  2. FormClosing事件:当用户关闭窗体时,在窗体已关闭并指定关闭原因前发生。比如关闭窗体前的清理操作放在这个函数里
  3. Activated事件:每当窗体被激活时发生
  4. Deactivate事件:每当窗体被停用时发生
  5. FormClosed事件:每当用户关闭窗体时,在窗体已关闭并指定关闭原因后发生
  6. Click事件:单机窗体时发生

    参考:2023年C#之WinForm零基础教程50讲
相关推荐
Fairy_sevenseven2 分钟前
【二十八】【QT开发应用】模拟WPS Tab
开发语言·qt·wps
蜡笔小新星10 分钟前
Python Kivy库学习路线
开发语言·网络·经验分享·python·学习
凯子坚持 c10 分钟前
C语言复习概要(三)
c语言·开发语言
无限大.22 分钟前
c语言200例 067
java·c语言·开发语言
余炜yw24 分钟前
【Java序列化器】Java 中常用序列化器的探索与实践
java·开发语言
篝火悟者25 分钟前
问题-python-运行报错-SyntaxError: Non-UTF-8 code starting with ‘\xd5‘ in file 汉字编码问题
开发语言·python
Death20027 分钟前
Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件
c语言·开发语言·c++·qt·c#
六点半88829 分钟前
【C++】速通涉及 “vector” 的经典OJ编程题
开发语言·c++·算法·青少年编程·推荐算法
惜.己29 分钟前
javaScript基础(8个案例+代码+效果图)
开发语言·前端·javascript·vscode·css3·html5
niu_sama33 分钟前
基于muduo库函数实现protobuf协议的通信
开发语言·qt