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自带布局器)
子控件依次排列,一行排满后换行继续排。
以表格形式布局。
1.布局的嵌套:Panel本身也是控件,也有Anchor/Dock属性
2.表格布局,可增减删除列,设置列的宽度:
绝对值:(固定大小)
百分比:(占据剩余空间的百分比)
自动大小:(根据所需的空间自动分配)
行为:Multiline:单行模式/多行模式
Password Char:‘*’密码输入格式(但仍可使用MessageBox.Show()展示出来)
ReadOnly:只读模式
(外观)Text:文本显示
(外观)checked:是/否
(操作)Click:点击动作(用户手动点击)
(杂项)CheckedChanged:选中状态发生变化(状态值发生变化,既可以是用户,也可以是程序代码改变)
i)添加数据项-直接在设计器里编译 属性|数据|Item
ii)构造方法中手动添加 comboBox1.Items.Add("red");
可展示插入的项于用户,并提供单选多选操作
属性:(行为)SelectionMode:单选/多选
事件:(行为)SelectionIndexChanged
Image:抽象类,图像的统称
Bitmap:具体类,位图
PictureBox 图片框控件:用于显示一个图片
设置缩放模式:picbox.SizeMode =PictureBoxSizeMode.Zoom;
显示图片:picbox.Image = img;
加载图片:picbox.Load("绝对地址")
双击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的二次开发奠定了一点基础
感谢大家的批评指正!!
感谢大家的批评指正!!
感谢大家的批评指正!!