C# winForm基础知识点总结

简介:微软官方文档---Windows 窗体是一个可创建适用于 Windows 的丰富桌面客户端应用的 UI 框架。 Windows 窗体开发平台支持广泛的应用开发功能,包括控件、图形、数据绑定和用户输入。 Windows 窗体采用 Visual Studio 中的拖放式可视化设计器,可轻松创建 Windows 窗体应用。

一、事件处理

注意与细节:

1.事件处理回调是定义在Form1.cs中

2.可使用MessageBox.Show()弹出一个消息框

3.CW仅调试状态下可看见输出

4.手工事件处理 System.Evenhandler (在Form1.cs中手动添加事件处理)

5.双击或者目标事件下选中回车,将在Form1.Designer.cs中自动生成

二、控件布局

控件的布局:当窗口中有多个控件时,如何决定每个控件的位置和大小。
布局方式:

可视化布局:在设计器里拖放操作

手工布局:用代码计算设置并设置每个控件的位置

使用布局器:用布局器自动布局

注意与细节:

1.TextBox:AutoSize = false

否则会自动计算所需大小(区分Size和ClientSize)

2.窗口的自适应:当窗口大小变化是,会调用OnLayout()方法

3.Anchor :锚定,将控件固定于某个位置

i)拉伸:Anchor =Top|Right|Bottom|Left

ii) 居中:Anchor = None

4.Dock: 停靠,将控件停靠在一侧或中央

三、布局器

布局器LayoutEngine:负责子控件的布局(默认一个Form或Panel自带布局器)

FlowLayoutPanel - 流式布局:

子控件依次排列,一行排满后换行继续排。

TableLayoutPanel - 表格布局:

以表格形式布局。

注意与细节:

1.布局的嵌套:Panel本身也是控件,也有Anchor/Dock属性

2.表格布局,可增减删除列,设置列的宽度:

绝对值:(固定大小)

百分比:(占据剩余空间的百分比)

自动大小:(根据所需的空间自动分配)

四、常用控件

1.文本框相关属性

行为:Multiline:单行模式/多行模式

          Password Char:‘*’密码输入格式(但仍可使用MessageBox.Show()展示出来)

          ReadOnly:只读模式

2.复选框CheckBox
相关属性:

(外观)Text:文本显示

(外观)checked:是/否

相关事件:

(操作)Click:点击动作(用户手动点击)

(杂项)CheckedChanged:选中状态发生变化(状态值发生变化,既可以是用户,也可以是程序代码改变)

3.下拉列表ComboBox

i)添加数据项-直接在设计器里编译  属性|数据|Item

ii)构造方法中手动添加 comboBox1.Items.Add("red");

4.列表框ListBox

可展示插入的项于用户,并提供单选多选操作

属性:(行为)SelectionMode:单选/多选

事件:(行为)SelectionIndexChanged

5.图片

Image:抽象类,图像的统称

Bitmap:具体类,位图

6.图片框

PictureBox 图片框控件:用于显示一个图片

设置缩放模式:picbox.SizeMode =PictureBoxSizeMode.Zoom;

显示图片:picbox.Image = img;

加载图片:picbox.Load("绝对地址")

7.资源文件Properties/Resources.resx

双击Resources.resx,打开资源编译器,添加资源,选择,修改资源名(方便调用),使用资源

五、复合、自定义控件

复合控件:将标准控件组合起来

class YourControl:UserControl{}

扩展控件:继承于标准控件

class YourControl:Button{}

自定义控件:完全地自定义一个控件

class YourControl:Control{}

注意与细节:

1.自定义属性

属性的重写如:

public override string Text

{}

2.自定义事件

//添加自定义事件
public event EventHandler SearchEvent;

//自定义事件绑定点击事件
private void btn_Click(object sender,EventArgs e)
{
searchEvent?.invoke(this,e);
}

重新生成解决方案(shift + ctrl + B),刷新Form1.cs,便可见自定义事件

3.添加属性

如:Test,Font,BackColor

六、对话框

系统自带对话框

OpenFileDialog

SaveFileDialog

FolderBrowserDialog

ColorDialog

FontDialog

七、栏

菜单栏MeauStrip:支持可视化编辑

工具栏ToolStrip

右键菜单ContextMenuStrip 在设计器里直接可视化编辑即可

给ListBox添加鼠标事件MouseUp

void listBox1_MouseClick(sender e)

弹出上下文菜单

contextMeauStrip1.Show(listBox1,e.Location);

八、列表控件

Detail:详细模式

List:列表模式

Large Icon:大图标模式

SmallIcon:小图标模式

图标设置

listView1.laregeImageList//用于大图标模式
listView1.SmallImgleList//用于其他显示模式

item = new ListViewItem(label,imageIndex)//添加项所使用的图片索引

//显示优化,批量数据添加时避免界面频繁刷新
listView1.BeginUpdate();
//。。。修改显示数据代码省略
listView!.EndUpdate();

九、其他类二次开发

来自邵发的文档摘录

2.编辑标签

设置LabelEdit为true,允许编辑(也可使用ListViewItem.BeginEdit())

3.编辑验证

4表格控件DataGridView,对多行多列数据展示

心得体会:

winform基于C#语言的编写,让作者有一种VB的熟悉感,可视化布局人机交互体验更加,在自定义菜单栏等使用过程又和C++MFC布局有些相似,整体学习下来通俗易懂,可快速上手。其中的自定义控件也十分有趣,像封装了一个图形化的函数,再去调用更加多元化。为C#+AE的二次开发奠定了一点基础

感谢大家的批评指正!!

感谢大家的批评指正!!

感谢大家的批评指正!!

  • 29
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值