WinForm控件开发基础教程四控件属性
winform教程
![winform教程](https://img.taocdn.com/s3/m/52ab394a591b6bd97f192279168884868762b8d4.png)
winform教程WinForm(Windows Forms)是微软基于.NET Framework开发的一种用户界面设计工具。
它使用了传统的窗体、标签、按钮等控件来创建GUI界面,是使用C#或语言开发桌面应用程序的一种方式。
WinForm教程1. 创建新的WinForm应用程序项目打开Visual Studio,在菜单栏中选择“文件”->“新建”->“项目”,选择“Visual C#”或“Visual Basic”下的“Windows”或“Windows经典桌面”类别,在右侧选择“Windows Forms应用程序”。
输入项目名称,选择存储路径,点击“确定”按钮创建新的WinForm应用程序项目。
2. 设计界面在Visual Studio的设计器中,可以通过拖拽控件来设计界面。
常用的控件包括标签(Label)、文本框(TextBox)、按钮(Button)、列表框(ListBox)等。
选择相应的控件,在窗体上拖拽并调整位置和大小。
可以使用属性窗口来设置控件的属性,例如文本、字体、大小等。
3. 添加事件处理程序在WinForm应用程序中,控件的各种操作通常需要绑定相应的事件处理程序。
例如,当按钮被点击时,需要执行相应的代码。
在设计器中,选择要添加事件处理程序的控件,在属性窗口的“事件”标签页中选择相应的事件,双击后会自动创建事件处理程序并打开代码编辑器。
4. 编写业务逻辑通过代码编辑器,可以编写业务逻辑代码。
例如,在按钮的点击事件处理程序中,可以编写代码来实现具体的功能,如弹出消息框、读取文本框的内容等。
通过使用.NET Framework提供的类库,可以实现各种功能,如数据访问、文件操作、网络通信等。
5. 调试和运行应用程序在编写完业务逻辑代码后,可以通过单击“开始调试”按钮或按下F5键来调试和运行应用程序。
在调试过程中,可以使用调试工具来检查代码执行的情况,并进行逐行调试。
6. 发布应用程序当应用程序开发完成后,可以将其发布为独立的可执行文件。
WinForm控件开发总结(完整版)
![WinForm控件开发总结(完整版)](https://img.taocdn.com/s3/m/173575fef705cc17552709e0.png)
WinForm控件开发总结原创来源:/118744372.html目录WinForm控件开发总结(一)------开篇 (1)WinForm控件开发总结(二)------使用和调试自定义控件 (3)WinForm控件开发总结(三)------认识WinForm控件常用的Attribute (4)WinForm控件开发总结(四)-----控件属性的串行化 (5)WinForm控件开发总结(五)-----为控件的复杂属性提供类型转换器 (8)WinForm控件开发总结(六)-----控件属性类型转换器代码详解 (10)WinForm控件开发总结(七)-----为复杂属性的子属性提供编辑功能 (12)WinForm控件开发总结(八)-----为属性提供弹出式编辑对话框 (14)WinForm控件开发总结(九)-----为属性提下拉式属性编辑器 (17)WinForm控件开发总结(十)-----为属性设置默认值 (20)WinForm控件开发总结(十一)-----调试控件的设计时行为 (22)WinForm控件开发总结(十二)-----让控件处理导航键 (23)WinForm控件开发总结(一)------开篇其实开发WinForm控件并不是很复杂,.NET为我们提供了丰富的底层支持。
如果你有MFC或者API 图形界面的开发经验,那么学会WinForm控件可能只需要很短的时间就够了。
自己开发的WinForm控件通常有三种类型:复合控件(Composite Controls),扩展控件(Extended Controls),自定义控件(Custom Controls)。
复合控件:将现有的各种控件组合起来,形成一个新的控件,将集中控件的功能集中起来。
扩展控件:在现有控件的控件的基础上派生出一个新的控件,为原有控件增加新的功能或者修改原有控件的控能。
自定义控件:直接从System.Windows.Forms.Control类派生出来。
c#WinForm开发DataGridView控件的各种操作总结(单元格操作,属性设置)
![c#WinForm开发DataGridView控件的各种操作总结(单元格操作,属性设置)](https://img.taocdn.com/s3/m/f00c84eb9fc3d5bbfd0a79563c1ec5da50e2d667.png)
c#WinForm开发DataGridView控件的各种操作总结(单元格操作,属性设置)一、单元格内容的操作*****// 取得当前单元格内容Console.WriteLine(DataGridView1.CurrentCell.Value);// 取得当前单元格的列 IndexConsole.WriteLine(DataGridView1.CurrentCell.ColumnIndex);// 取得当前单元格的行 IndexConsole.WriteLine(DataGridView1.CurrentCell.RowIndex);*******另外,使用 DataGridView.CurrentCellAddress 属性(而不是直接访问单元格)来确定单元格所在的行:DataGridView.CurrentCellAddress.Y 和列:DataGridView.CurrentCellAddress.X 。
这对于避免取消共享行的共享非常有用。
当前的单元格可以通过设定DataGridView 对象的CurrentCell 来改变。
可以通过 CurrentCell 来设定DataGridView 的激活单元格。
将CurrentCell 设为Nothing(null) 可以取消激活的单元格。
// 设定 (0, 0) 为当前单元格DataGridView1.CurrentCell = DataGridView1[0, 0];在整行选中模式开启时,你也可以通过CurrentCell 来设定选定行。
/// <summary>/// 向下遍历/// </summary>/// <param ></param>/// <param ></param>private void button4_Click(object sender, EventArgs e)...{int row = this.dataGridView1.CurrentRow.Index + 1;if (row > this.dataGridView1.RowCount - 1)row = 0;this.dataGridView1.CurrentCell = this.dataGridView1[0, row];}/// <summary>/// 向上遍历/// </summary>/// <param ></param>/// <param ></param>private void button5_Click(object sender, EventArgs e)...{int row = this.dataGridView1.CurrentRow.Index - 1;if (row < 0)row = this.dataGridView1.RowCount - 1;this.dataGridView1.CurrentCell = this.dataGridView1[0, row];}* 注意: this.dataGridView 的索引器的参数是: columnIndex, rowIndex 或是 columnName, rowIndex这与习惯不同。
VS2017winform窗体控件常用属性、方法、事件(不完全摘要)
![VS2017winform窗体控件常用属性、方法、事件(不完全摘要)](https://img.taocdn.com/s3/m/79a6330fbfd5b9f3f90f76c66137ee06eff94e9a.png)
VS2017winform窗体控件常⽤属性、⽅法、事件(不完全摘要)属性:1. AutoSize 属性:⽤来获取或设置⼀个值,该值指⽰是否⾃动调整控件的⼤⼩以完整显⽰其内容。
2. Anchor 属性:⽤来确定此控件与其容器控件的固定关系的。
3. BorderStyle 属性:⽤来设置或返回边框。
4. ReadOnly 属性:⽤来获取或设置⼀个值,该值指⽰⽂本框中的⽂本是否为只读。
5. PasswordChar 属性:是⼀个字符串类型,允许设置⼀个字符,运⾏程序时,将输⼊到 Text 的内容全部显⽰为该属性值,从⽽起到保密作⽤,通常⽤来输⼊⼝令或密码。
6. Text 属性:⽤来设置或返回控件内显⽰的⽂本,该属性也可以包含访问键,即前⾯带有“&”符号的字母,这样⽤户就可以通过同时按 Alt 键和访问键来选中控件。
7. Button8. DialogResult 属性:当使⽤ ShowDialog ⽅法显⽰窗体时,可以使⽤该属性设置当⽤户按了某按钮后,ShowDialog ⽅法的返回值。
值有:OK、Cancel、Abort、Retry、Ignore、Yes、No 等。
9. FlatStyle 属性:⽤来设置按钮的外观。
3d、平的、跟随系统、弹出;10. RadioButton || CheckBox11. Checked 属性:⽤来设置或返回单选按钮是否被选中,选中时值为 true,没有选中时值为 false。
(单选、多选控件)12. Items 属性:⽤于存放列表框中的列表项,是⼀个集合。
13. ListBox14. MultiColumn 属性:⽤来获取或设置⼀个值,该值指⽰ ListBox 是否⽀持多列。
15. SelectedItem 属性:获取或设置 ListBox 中的当前选定项。
16. SelectedItems 属性:获取 ListBox 控件中选定项的集合。
17. PictureBox18. SizeMode 属性:⽤来决定图像的显⽰模式。
winform了解窗体基础知识和常用属性
![winform了解窗体基础知识和常用属性](https://img.taocdn.com/s3/m/b3101f16ed630b1c58eeb533.png)
第一章了解窗体基础知识和常用属性讲师:千年明月01 02030405 目录 了解窗体基础知识和常用属性 熟练使用标签、文本框、按钮控件 掌握列表框控件的使用 使用消息框弹出消息 熟练掌握窗体间链接什么是Windows 窗体控件Windows 操作系统中,处处是窗体 GUI 界面创建第一个窗体应用程序在 VS 中创建 Windows 应用程序的步骤:1、打开 VS2、新建项目3、项目类型:Visual C# 项目4、模板:Windows 应用程序初识编译工具放置控件的区域各种控件windows应用程序文件夹结构项目名称主程序文件,包含Main方法我们编写代码的文件解决方案名称窗体设计器代码文件,代码为VS自动生成随堂练习•自己创建一个WinForm程序,运行下效果,试试看?Main 方法解析 •位于 Program.cs 文件 •Windows 程序的入口 // Program.cs namespace MyForm { static class Program { …….. static void Main( ) { Application.EnableVisualStyles(); Application.SetCompatibleT extRenderingDefault(false); Application.Run(new Form1()); } } }Main 方法, 程序的入口 VS 自动生成 一般不需要理会 默认程序打开的第一个窗体名认识窗体代码文件•WinForms 窗体有两种编辑窗口:窗体设计器窗口窗体代码编辑窗口解析窗体类 •Form 类:.NET 预定义的窗体类 •Form1 继承自 Form 构造函数 做一些初始化的工作 编译器自动调用 // Form1.cs namespace MyForm { public partial class Form1 : Form { public Form1() { InitializeComponent(); } } } 冒号表示继承 Form 类定义了窗体的基本属性和行为 我们创建的窗体都继承自Form 类 Form1具有相应的属性和行为窗体的重要属性Name :窗体对象的名字,类似于变量的名字BackColor :窗体的背景色ShowInT askBar :设置窗体是否出现在任务栏StartPosition :窗体第一次出现时的位置T ext :窗体标题栏显示的文字T opMost :设置窗体是否为最顶端的窗体WindowState :窗体出现时最初的状态(正常、最大化、最小化)随堂练习•尝试一下,改变一下窗体的样子和名字Windows窗体常用控件标签文本框组合框列表框按钮接下来,我们就一起来做窗体,属性说明Text该属性用于设置或获取与该控件关联的文本方法说明Hide 隐藏控件,调用该方法时,即使 Visible 属性设置为 True,控件也不可见Show 相当于将控件的 Visible 属性设置为 True 并显示控件事件说明Click 用户单击控件时将发生该事件属性说明MaxLength 可在文本框中输入的最大字符数Multiline 表示是否可在文本框中输入多行文本Passwordchar 机密和敏感数据,密码输入字符ReadOnly 文本框中的文本为只读Text 检索在控件中输入的文本方法说明Clear 删除现有的所有文本事件说明KeyPress 用户按一个键结束时将发生该事件属性说明Enabled确定是否可以启用或禁用该控件方法说明PerformClick Button 控件的 Click 事件事件说明Click 单击按钮时将触发该事件•简单窗体的设计窗体什么是事件}Windows 系统中处处是事件:}鼠标按下、鼠标释放、键盘键按下……}Windows 系统通过事件处理来响应用户的请求 显示开始菜单我的电脑窗口打开事件触发事件响应的结果 单击双击问题:要点按钮一下,能不能做一下反映呢?事件驱动Windows 通过随时响应用户触发的事件做出相应的响应——事件驱动机制WinForms 应用程序也是事件驱动的我们需要做的:针对我们感兴趣的事件,编写相应的事件处理程序示例:编写按钮控件点击事件代码namespace MyFirstWinForm{public partial class Form1 : Form{public Form1(){InitializeComponent();this.txtName.T ext = "张三";}//按钮的事件方法,里面填写代码,修改文本框的文本为李四 private void btnChange_Click(object sender, EventArgs e){this.txtName.T ext = "李四";窗体的重要事件}窗体有哪些事件?}Load :窗体加载事件}MouseClick :鼠标单击事件}MouseDoubleClick :鼠标双击事件}MouseMove :鼠标移动事件}KeyDown :键盘按下事件}KeyUp :键盘释放事件}……属性ItemsSelectionModeSelectedIndexSelectedItemSelectedItemsText方法ClearSelected事件SelectedIndexChanged控件命名规范常用窗体基本控件及命名规范Label :标签lblButton :按钮btnT extBox :文本框txt ListBox :列表框lst 详细信息请查询《C#常用控件缩写.docx》消息框3-1 MessageBox.Show (“[消息文本]");消息框用于显示消息YesNo Buttons Default Button - YES MessageBoxIcon Abort, Cancel, Ignore, No, None, Ok, Retry 和 Y es if (MessageBox.Show(“保存文件”,“保存", MessageBoxButtons.Y esNo, rmation, MessageBoxDefaultButton.Button1) == DialogResult.Y es) { //保存文件所用的代码//保存后的 MessageBox}扩展内容:消息框3-2// 最简单的消息框MessageBox.Show( "请输入用户姓名" );// 带标题的消息框MessageBox.Show("请输入用户姓名", "输入提示");// 带标题、按钮的消息框MessageBox.Show("请输入用户姓名", "输入提示", MessageBoxButtons.OKCancel );// 带标题、按钮、图标的消息框MessageBox.Show("请输入用户姓名", "输入提示",MessageBoxButtons.OKCancel, rmation ); MessageBoxButtons提供按钮的类型OKCancel 表示“确定”、“取消”按钮MessageBoxIcon提供图标类型Information 表示消息图标扩展内容:消息框3-3重载方法Show(string text);Show(string text, string caption);Show(string text, string caption, MessageBoxButtons buttons);Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);……随堂练习4 •简单窗体的设计窗体显示另外一个窗体步骤:1、定义窗体对象2、显示窗体定义窗体对象:被调用的窗体类名窗体对象 = new 被调用的窗体类名( );显示窗体:窗体对象 . Show( );窗体对象 . ShowDialog( );随堂练习5总结•WinForms可用于Windows窗体应用程序开发•标签控件用于显示用户不能编辑的文本或图像•按钮控件提供用户与应用程序交互的最简便方法•文本框用于接收用户的输入•列表框控件是列出所有选项的清单控件•窗体提供了收集、显示和传送信息的界面,是类的对象,有二种方式显示窗体•消息框用于显示消息,与用户交互Thank Y ou课后练习(完成QQ登陆)•按照给与的素材,完成QQ的登陆页面,添加事件能成功进入第二个页面课后练习(尝试)。
学习WinForm最基本控件
![学习WinForm最基本控件](https://img.taocdn.com/s3/m/7c135f1fa8114431b90dd820.png)
课程复习与回顾
❖ 学习内容总结: ❖ 1: 五大最基本控件的使用。 ❖ 2: Form 窗体常用属性。 ❖ 3: 分别使用设计器“属性框”与代码方式给
控件设置属性与事件。 ❖ 4: 学习消息框 MessageBox.show() 的用法。
30
课程复习与回顾
❖ 课后作业: ❖ 1: 书本 P37页 课后练习1,建立用户登录窗
boBox3.Items.Add("财务部"); boBox3.Items.Add("产品部"); boBox3.Items.Add("销售部"); boBox3.Items.Add("生产部"); //默认的选择是"产品部" boBox3.SelectedIndex = 1; }
22
2. 最基本控件—消息框
消息框用于显示消息
消息框窗口
MessageBox.Show(“[消息文本]");
if (MessageBox.Show(“保存文件”,“保存",
MessageBoxButtons.YesNo, rmation,
MeMsessasaggeeBBoxoIcxonDefaultButton.Button1) == DialogResult.Yes)
20
2. 最基本控件 组合框
属性
DropDownStyle MaxDropDownItems
方法
说明
ComboBox 控件的样式 下拉区显示的最大项目数
说明
t
在 ComboBox 控件上选定指定 范围的文本
21
2. 最基本控件
private void Form1_Load(object sender, EventArgs e) { boBox1.Items.Add("财务部"); boBox1.Items.Add("产品部"); boBox1.Items.Add("销售部"); boBox1.Items.Add("生产部"); //默认的选择是"产品部" boBox1.SelectedIndex = 1;
(完整word版)Winform常用控件的常用属性
![(完整word版)Winform常用控件的常用属性](https://img.taocdn.com/s3/m/437c331048d7c1c708a1458b.png)
常用控件的常用属性长用Name :表示一个控件或者窗体的名称。
Anchor:表示窗体拉大后控件会随这窗体的4个方向随之变化。
BackColor:控件和窗体的背景颜色。
BackgroundImage:窗体的背景图片。
Cursor:鼠标经过控件时,鼠标的图标所发生的变化。
ContextMenuStrip:鼠标单击右键,所出先的菜单。
Dock:表示该控件在窗体的那个位置的停靠。
Enabled:表示该控件是否有用默认值Ture 。
选False该控件则没有任何作用。
Font:设置控件里字体的大小、字号、字体、和下划线。
ForeColor:在控件里输入字体时,字体的颜色。
(默认值为黑色)。
Location:表示该控件在窗体中的位置。
X坐标数值越大则控件会越往右,Y坐标数值越大则控件越往下。
Size:该控件的大小width 表示控件的宽度heigth表示控件的高度。
Visible:是否隐藏该控件。
选False控件是看不见的。
Tag:Text:控件上显示的字体。
Form窗体ControlBox:表示窗体的标题栏中时候有最大化、最小化和关闭的按钮选false则不会看见这些按钮。
FormBorderStyle:表示窗体的边框线的样式和标题栏的样式和标题栏按钮显示方式。
Icon:窗体标题栏左边显示的图片。
MaximizeBox:确认标题栏里是否有最大化按钮。
MinimizeBox:确认标题栏里是否有最小化按钮。
StartPosition:运行窗体时窗体在屏幕前在那个位置显示。
WindowState:运行窗体时,窗体的显示方式(比如全屏幕显示、最小化显示、正常显示)。
Label标签BorderStyle:表示该标签的边框样式。
Image:在该标签上显示的图片。
ImageAlign:要显示图片以什么方式在标签的背景上显示。
ImageList:TextBox文本框BorderStyle:表示该文本框的边框样式。
MaxLength:可以输入多少个字符。
c#winform控件及窗体属性
![c#winform控件及窗体属性](https://img.taocdn.com/s3/m/5e3279070a4e767f5acfa1c7aa00b52acfc79cc0.png)
c#winform控件及窗体属性窗体是程序与⽤户交互的可视界⾯,窗体也是对象,窗体类定义了⽣成窗体的模版,实例化⼀个窗体类就产⽣了⼀个窗体。
.NET框架类库的System.Windows.Forms命名空间中定义的Form类是所有窗体类的基类。
1、常⽤属性属性:图标、标题、位置、背景等可在窗体属性⾯板设置,也可以代码实现。
(1)Name属性:⽤来获取或设置窗体的名称,在应⽤程序中可通过Name属性来引⽤窗体。
(2)WindowState属性:⽤来获取或设置窗体的窗⼝状态。
取值有三种:Normal(窗体正常显⽰)、Minimized(窗体以最⼩化形式显⽰)和Maximized(窗体以最⼤化形式显⽰)。
(3)StartPosition属性:⽤来获取或设置运⾏时窗体的起始位置。
(4)Text属性:该属性是⼀个字符串属性,⽤来设置或返回在窗⼝标题栏中显⽰的⽂字。
(5)AcceptButton属性:该属性⽤来获取或设置⼀个值,该值是⼀个按钮的名称,当按Enter键时就相当于单击了窗体上的该按钮。
(6)CancelButton属性:该属性⽤来获取或设置⼀个值,该值是⼀个按钮的名称,当按Esc键时就相当于单击了窗体上的该按钮。
(7)Modal属性:该属性⽤来设置窗体是否为有模式显⽰窗体。
如果有模式地显⽰该窗体,该属性值为true;否则为false。
当有模式地显⽰窗体时,只能对模式窗体上的对象进⾏输⼊。
必须隐藏或关闭模式窗体(通常是响应某个⽤户操作),然后才能对另⼀窗体进⾏输⼊。
有模式显⽰的窗体通常⽤做应⽤程序中的对话框。
(8)ActiveControl属性:⽤来获取或设置容器控件中的活动控件。
窗体也是⼀种容器控件。
(9)ActiveMdiChild属性:⽤来获取多⽂档界⾯(MDI)的当前活动⼦窗⼝。
(10)AutoScroll属性:⽤来获取或设置⼀个值,该值指⽰窗体是否实现⾃动滚动。
如果此属性值设置为true,则当任何控件位于窗体⼯作区之外时,会在该窗体上显⽰滚动条。
winForm基本控件
![winForm基本控件](https://img.taocdn.com/s3/m/0e819aeb856a561252d36fad.png)
26
4. 软件系统框架类控件组 菜单 软件系统框架类控件组-菜单
2、建立简单的菜单 (1)建立winform窗体并添加菜单组件
(2)注意菜单命名时候的问题;避免汉字 汉字出现。 汉字
27
4. 软件系统框架类控件组 菜单 软件系统框架类控件组-菜单
(3)快捷键问题
创建主菜单
配置快捷键
如果在命名时候在 在命名时候在text属性处键入“文件(&F)”,将会产生“文件(F)”的 属性处键入“ 将会产生“文件( ) 在命名时候在 属性处键入 文件( ) 效果,&将被认为是快捷键的字符。运行时候为alt+f键执行。同理,菜单功能在 分组时候可以加入分隔符号:
说明
用于指定图片框显示的图像。该图像可在设计或运行 时设置 包括 AutoSize、CenterImage、Normal 和 StretchImage。默认值为 Normal
显示位图、元文件、图标、JPEG、GIF 是一种图形显示控件 用于指定图像的显示方式。可以指定的各种大小模式 或 PNG 等格式的图形
21
3. 日期与微调控件组 日期与微调控件组-monthCalendar
3、实验案例
页面布局
22
运行样式
3. 日期与微调控件组 日期与微调控件组-DataTimePicker
23
3. 日期与微调控件组 日期与微调控件组-DataTimePicker
1、属性 showcheckbox checked showupdown value 2、案例 是否在控件中显示复选框,当复选框为选中时候,表示未 选择任何值。 当showcheckbox 为TRUE时候,确定是否选择复选框。 改为数字显示框,不再显示月历表。 当前的日期(年月日时分秒)
WinForm控件开发基础教程控件属性
![WinForm控件开发基础教程控件属性](https://img.taocdn.com/s3/m/fc4e59a25fbfc77da369b103.png)
WinForm控件开发基础教程四控件属性前一篇文章介绍了常用的设计时Attribute。
其中BrowsableAttribute,CategoryAttribute,DescriptionAttribute,DefaultPropertyAttribute,DefaultEventAttribute都是比较简单的,也是可有可无,但是为了提供更好的用户体验这些Attribute最好不要省掉,如果你对这些Attribute还不熟悉,可以参考我前一篇文章的描述或者查看MSDN,这里我就不在赘述了。
下来我们主要介绍一下DesignerSerializationVisibilityAttribute和TypeConverterAttribute。
DesignerSerializationVisibilityAttribute的功能是指示一个属性是否串行化和如何串行化,它的值是一个枚举,一共有三种类型Content,Hidden,Visible。
Content指示代码生成器为对象包含的内容生成代码,而不是为对象本身,Hidden指示代码生成器不为对象生成代码,visible指示代码生成器为对象生成代码。
假如你的控件有一个集合属性,又想在设计时自动将集合属性的内容生成代码,那么就使用这个Attribute,并将值设为DesignerSerializationVisibility.Content。
TypeConverterAttribute的作用就更大一些,也稍微复杂一些。
TypeConverterAttribute主要的目的是为属性指定一个类型转换器,这个转化器可以将属性的值转换城其它的类型。
.NET 框架已经为大部分常用的类型都提供了类型转换器,比如Color就有ColorConverter,枚举类型就有EnumConverter,等等,所以一般情况下你没有必要写类型转换器,如果你的属性的特殊的类型或者自定义的类型那么就必须要写了。
WinForm常用窗体控件的使用
![WinForm常用窗体控件的使用](https://img.taocdn.com/s3/m/2be467d34bfe04a1b0717fd5360cba1aa8118cb9.png)
WinForm常用窗体控件的使用1. Label:Label是用于显示文本的控件,可以在窗体上添加文字或图像。
可以通过设置Text属性来显示文本内容,可以设置Font属性来改变字体样式,可以设置ForeColor和BackColor属性来改变前景色和背景色。
2. TextBox:TextBox是用于用户输入文本的控件。
可以通过设置Text属性来获取或设置文本框中的内容,可以设置ReadOnly属性来设置文本框是否只读。
3. Button:Button是用于触发事件的控件,用户点击按钮时会触发相应的事件处理程序。
可以通过设置Text属性来设置按钮上显示的文本,可以通过设置Click事件来添加按钮的点击事件处理程序。
4. CheckBox:CheckBox是用于选择一个或多个选项的控件,用户可以通过勾选或取消勾选来选择选项。
可以通过设置Checked属性来获取或设置CheckBox的选中状态,可以设置Text属性来设置CheckBox的显示文本。
5. RadioButton:RadioButton是用于从一组选项中选择一个选项的控件,用户只能选择其中一个选项。
可以通过设置Checked属性来获取或设置RadioButton的选中状态,可以设置Text属性来设置RadioButton的显示文本。
7. ListBox:ListBox是用于显示一个列表的控件,用户可以从列表中选择一个或多个选项。
可以通过设置Items属性来设置列表中的选项,可以通过设置SelectedItems属性来获取当前选中的选项。
8. PictureBox:PictureBox是用于显示图像的控件,可以显示各种图像格式的图片。
可以通过设置Image属性来设置PictureBox显示的图像,可以设置SizeMode属性来调整图像的显示方式。
9. ProgressBar:ProgressBar是用于显示操作进度的控件,可以显示操作的完成百分比。
WinForm帮助文档
![WinForm帮助文档](https://img.taocdn.com/s3/m/add83e0fcc7931b765ce15ba.png)
窗体(Form)1、常用属性(1)Name 属性:用来获取或设置窗体的名称,在应用程序中可通过Name 属性来引用窗体。
(2)WindowState 属性:用来获取或设置窗体的窗口状态。
取值有三种:Normal (窗体正常显示)、Minimized(窗体以最小化形式显示)和Maximized(窗体以最大化形式显示)。
(3)StartPosition 属性:用来获取或设置运行时窗体的起始位置。
(4)Text 属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。
(5)Width 属性:用来获取或设置窗体的宽度。
(6)Height 属性:用来获取或设置窗体的高度。
(7)Left 属性:用来获取或设置窗体的左边缘的x 坐标(以像素为单位)。
(8)Top 属性:用来获取或设置窗体的上边缘的y 坐标(以像素为单位)。
(9)ControlBox 属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。
值为true时将显示控制框,值为false 时不显示控制框。
(10)MaximizeBox 属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。
值为true 时显示最大化按钮,值为false 时不显示最大化按钮。
(11)MinimizeBox 属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。
值为true 时显示最小化按钮,值为false 时不显示最小化按钮。
(12)AcceptButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Ent er 键时就相当于单击了窗体上的该按钮。
(13)CancelButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Esc 键时就相当于单击了窗体上的该按钮。
(14)Modal 属性:该属性用来设置窗体是否为有模式显示窗体。
如果有模式地显示该窗体,该属性值为true;否则为false。
WinForm 自定义控件属性
![WinForm 自定义控件属性](https://img.taocdn.com/s3/m/c94a0ff9770bf78a65295475.png)
Bindable指定屬性是否支援Data Binding。
这个特性表示属性是否可以绑定一个有效数据源。
通常使用布尔值进行设置。
例如:Bindable(true)。
如果使用值true标记属性,表示该属性可以绑定一个有效数据源,且应引发该属性的属性更改通知。
Browsable控制屬性或事件是否顯示於屬性表。
指定属性是否应该在属性浏览器中显示,使用布尔值设置。
通常情况下,功用属性和那些希望在属性浏览器中显示的属性被设置为 Browsable(true),只读属性和那些不希望在属性浏览器中见到的属性被设置为 Browsable(false)。
Category對于屬性或是事件的分類,當屬性表採分類模式顯示時,會以此Attribute作為分類的依據。
指定属性在属性浏览器中进行分组显示的类别。
该设计时特性帮助可视化编辑器将属性进行逻辑分组。
通常分为:外观(Appearance)、行为(Behavior)、布局(Layout)、数据(Data)、操作(Action)、键盘(Key)和鼠标(Mouse)等。
除此之外,还可以自定义分组类别。
Description對于屬性或是事件的描述,當使用者選取該屬性或事件時,其會顯示於屬性表下方。
指定显示在属性浏览器下方,属性的文字说明。
EditorBrowsable控制屬性或事件是否顯示於IntelliSense視窗中。
Never不顯示,Always顯示,Advanced僅顯示於進階使用者模式,進階使用者模式可經由 Tools| Options | TextEditor | C# 中開啟。
DesignerSerializationVisibility指定属性是否以及如何在代码中序列化,其值为DesignerSerializationVisibility的枚举值。
存在3种设置方式:DesignerSerializationVisibility(DesignerSerializationVisibility.Hidde n) 指定序列化程序不应该序列化属性值;DesignerSerializationVisibility(DesignerSerializationVisibility.Visib le) 指定应该允许序列化程序序列化属性的值;DesignerSerializationVisibility(DesignerSerializationVisibility.Conte nt)指定序列化程序应该序列化属性的内容,而不是属性本身。
WinForm自定义控件属性
![WinForm自定义控件属性](https://img.taocdn.com/s3/m/11a454787f21af45b307e87101f69e314332faa5.png)
WinForm⾃定义控件属性Bindable指定屬性是否⽀援Data Binding。
这个特性表⽰属性是否可以绑定⼀个有效数据源。
通常使⽤布尔值进⾏设置。
例如:Bindable(true)。
如果使⽤值true标记属性,表⽰该属性可以绑定⼀个有效数据源,且应引发该属性的属性更改通知。
Browsable控制屬性或事件是否顯⽰於屬性表。
指定属性是否应该在属性浏览器中显⽰,使⽤布尔值设置。
通常情况下,功⽤属性和那些希望在属性浏览器中显⽰的属性被设置为Browsable(true),只读属性和那些不希望在属性浏览器中见到的属性被设置为 Browsable(false)。
Category對于屬性或是事件的分類,當屬性表採分類模式顯⽰時,會以此Attribute作為分類的依據。
指定属性在属性浏览器中进⾏分组显⽰的类别。
该设计时特性帮助可视化编辑器将属性进⾏逻辑分组。
通常分为:外观(Appearance)、⾏为(Behavior)、布局(Layout)、数据(Data)、操作(Action)、键盘(Key)和⿏标(Mouse)等。
除此之外,还可以⾃定义分组类别。
Description對于屬性或是事件的描述,當使⽤者選取該屬性或事件時,其會顯⽰於屬性表下⽅。
指定显⽰在属性浏览器下⽅,属性的⽂字说明。
EditorBrowsable控制屬性或事件是否顯⽰於IntelliSense視窗中。
Never不顯⽰,Always顯⽰, Advanced僅顯⽰於進階使⽤者模式,進階使⽤者模式可經由Tools| Options | TextEditor | C# 中開啟。
DesignerSerializationVisibility指定属性是否以及如何在代码中序列化,其值为DesignerSerializationVisibility的枚举值。
存在3种设置⽅式:DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)指定序列化程序不应该序列化属性值;DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)指定应该允许序列化程序序列化属性的值;DesignerSerializationVisibility(DesignerSerializationVisibility.Content)指定序列化程序应该序列化属性的内容,⽽不是属性本⾝。
winform窗体控件常用属性功能记录
![winform窗体控件常用属性功能记录](https://img.taocdn.com/s3/m/3f0e9ddddb38376baf1ffc4ffe4733687e21fc2e.png)
winform窗体控件常⽤属性功能记录Appearance:(展开)BackColor和BackColor2各设置⼀种颜⾊,再将BorderStyle设置成NoBorder,背景就可以变成渐变⾊。
在GradientMode⾥还可以设置渐变⽅向。
(BorderColor⽤法还没发现)Anchor:跟Dock属性相似,⽤于控制控件随⽗窗体⼤⼩的变化⽽变化。
这个属性使控件将其⾃⾝定位在⽗窗体或⽗控件中的某个相对或绝对位置,有四个可以开启或关闭的值:Top——表⽰控件中与⽗窗体(或⽗控件)相关的顶部应该保持固定。
Bottom——表⽰控件中与⽗窗体(或⽗控件)相关的底边应该保持固定。
Left——表⽰控件中与⽗窗体(或⽗控件)相关的左边缘应该保持固定。
Right——表⽰控件中与⽗窗体(或⽗控件)相关的右边缘应该保持固定。
BorderStyle:边框样式。
Dock:⽤于指定控件应停放在窗⼝的边框上,⽤户重新设置窗⼝的⼤⼩时,这个控件继续停放在窗⼝的边框上,例如,如果指定控件停放在窗⼝的底部边界上,则⽆论窗⼝的⼤⼩改变,这个控件都将改变⼤⼩,或移动其位置,确保总是位于屏幕的底部. Fill为总填满窗⼝。
Enabled:设置权限很有⽤的⼀个属性,为False时控件⽆法响应⽤户的任何操作。
可以在窗⼝初始化时设置为False,等⽤户登录后调⽤form.Enabled=true的事件,使⽤户不登陆时⽆法进⾏任何操作。
IconOption:设置窗体运⾏时的图标。
IsMdiContainer:⽤于嵌套窗体的很重要的属性。
为True时可以当作其他该属性为False的⼦窗体的⽗窗体。
可以在⽗窗体初始化时:childform.MdiParent = this;childform.Show();MainMenuStrip:窗体嵌套时经常会出现⼦窗体最⼤化时把⽗窗体菜单栏挡住,或是⽗窗体菜单栏把⼦窗体标题栏挡住的情况,没法进⾏缩⼩。
Winform中的常用控件
![Winform中的常用控件](https://img.taocdn.com/s3/m/a7f21e116c175f0e7cd1377a.png)
Winform 中的常用控件来自于系统System.Windows.Forms.Control,该类库来自System.Windows.Forms命名空间之内,该命名空间提供各种控件类,使用这些控件类,可以创建丰富的用户界面,具体实现功能由位于该命名空间下的Control系统类派生。
Control 类为在Form中显示的所有控件提供基本功能,Form类表示应用程序内的窗口。
这包括对话框,无模式窗口和多文档界面 (MDI) 客户端窗口及父窗口,同时也可以通过从UserControl 类派生而创建自己的控件。
对于上述所有的这些可视化界面组件,我们统一称之为控件,这些控件都是源于System.Windows.Forms命名空间,该命名空间结构如图1-7。
图1-7 System.Windows.Forms命名控件集1.案例学习:建立第一个winForm应用——员工信息录入功能本次实验目标是快速建立如图1-8的员工信息录入窗体,通过该案例使读者快速掌握Winform 中的常用控件包括:标签控件,文本框控件,按钮控件和组合框,列表框控件。
图1-8 员工信息录入窗体目标界面◆∙实验步骤(1):由图1-9所示,从工具箱之中拖拽具体的控件到Form窗体上,并更改标签对象和按钮的text属性为图1-8所标内容。
将文本框,列表框和组合框的Enabled属性设置为False,即设置这些控件为不可用状态。
图1-9 工具箱拖拽控件对象◆∙实验步骤(2):由图1-10所示,分别配置列表框和组合框的Items属性,在展开的字符串集合编辑器内输入图1-10所示的具体文本信息。
图1-10 配置列表框和组合框的Items属性◆∙实验步骤(3):用鼠标双击“添加”按钮,进入.cs文件编辑状态准备进行开发。
“添加”、“取消”和“关闭”按钮的鼠标单击事件详细代码加下:小实验:添加功能源代码:小实验:关闭功能源代码:1.Label标签控件Label标签控件是使用频度最高的控件,主要用以显示窗体文本信息。
WinForm动态设置控件属性
![WinForm动态设置控件属性](https://img.taocdn.com/s3/m/2e0e8efcbb0d4a7302768e9951e79b89680268bc.png)
WinForm动态设置控件属性本⽂⽤到的是 Winform + Dev 控件主要功能:可以读取配置(从数据库或者配置⽂件中读取),通过配置控制前⾯控件的属性放点控件先准备⽤到的实体/// <summary>/// 控件配置/// </summary>public class ControlList{/// <summary>/// 控件NAME/// </summary>public string ControlName { get; set; }/// <summary>/// 控件类型/// </summary>public string ControlTypeName { get; set; }/// <summary>/// 控件默认值/// </summary>public string ControlDefaultVal { get; set; }/// <summary>/// 控件可⽤/// </summary>public bool ControlEnable { get; set; }/// <summary>/// 控件显⽰/// </summary>public ControlvisibleInfo ControlVisible { get; set; }}public class ControlvisibleInfo{/// <summary>/// 显⽰值/// </summary>public youtVisibility IsVisible { get; set; }/// <summary>/// 包控件的Item/// </summary>public string PatientItem { get; set; }}正⽂public partial class Form5 : Form{public Form5(){InitializeComponent();}private void Form5_Load(object sender, EventArgs e){BindData();SetControlsPropertyVal();}public List<ControlList> listName = new List<ControlList>();public void SetControlsPropertyVal(){foreach (ControlList item in listName){Control[] ctrols = layoutControl1.Controls.Find(item.ControlName, true);if (ctrols.Length > 0){Type t = ctrols[0].GetType();if ( == item.ControlTypeName && ctrols[0].Name == item.ControlName){object o = t.GetProperty("EditValue").GetValue(ctrols[0], null);t.GetProperty("EditValue").SetValue(ctrols[0], item.ControlDefaultVal);t.GetProperty("Enabled").SetValue(ctrols[0], item.ControlEnable);if (item.ControlVisible != null){DevExpress.XtraLayout.BaseLayoutItem obj = layoutControlGroup1.Items.FindByName(item.ControlVisible.PatientItem); if (obj != null){obj.Visibility = item.ControlVisible.IsVisible;}}}}}}public void BindData(){#region 绑定控件List<SeachLookUpEditDataBind> list = new List<SeachLookUpEditDataBind>{new SeachLookUpEditDataBind { ID = "1", NAME = "张三" },new SeachLookUpEditDataBind { ID = "2", NAME = "李四" },new SeachLookUpEditDataBind { ID = "3", NAME = "王五" },new SeachLookUpEditDataBind { ID = "4", NAME = "赵六" }};searchLookUpEdit1.Properties.ValueMember = "ID";searchLookUpEdit1.Properties.DisplayMember = "NAME";searchLookUpEdit1.Properties.DataSource = list;searchLookUpEdit2.Properties.ValueMember = "ID";searchLookUpEdit2.Properties.DisplayMember = "NAME";searchLookUpEdit2.Properties.DataSource = list;#endregion#region 设置控件属性值listName.Add(new ControlList{ControlName = "textEdit1",ControlTypeName = "TextEdit",ControlDefaultVal = "234",ControlEnable = true,ControlVisible = new ControlvisibleInfo{IsVisible = youtVisibility.Always,PatientItem = "layoutControlItem2"}});listName.Add(new ControlList{ControlName = "searchLookUpEdit1",ControlTypeName = "SearchLookUpEdit",ControlDefaultVal = "1",ControlEnable = false,ControlVisible = new ControlvisibleInfo{IsVisible = youtVisibility.Always,PatientItem = "layoutControlItem1"}});listName.Add(new ControlList{ControlName = "searchLookUpEdit2",ControlTypeName = "SearchLookUpEdit",ControlDefaultVal = "2",ControlEnable = true,ControlVisible = new ControlvisibleInfo{IsVisible = youtVisibility.Never, PatientItem = "layoutControlItem3"}});listName.Add(new ControlList{ControlName = "radioGroup1",ControlTypeName = "RadioGroup",ControlDefaultVal = "1",ControlEnable = true,ControlVisible = new ControlvisibleInfo{IsVisible = youtVisibility.Always, PatientItem = "layoutControlItem4"}});#endregion}}。
C#Winform窗体基础属性
![C#Winform窗体基础属性](https://img.taocdn.com/s3/m/7c3eb74fa9956bec0975f46527d3240c8447a184.png)
C#Winform窗体基础属性窗⼝样式:Inco:改图标样式;MaxmizeBox:true;显⽰右上⾓最⼤化按钮;MinmizeBox:true;显⽰右上⾓最⼩化按钮;ShowInco:true;显⽰左上⾓⼩图标;ShowInTaskbar:true;窗体显⽰在任务栏;TopMost:true;窗⼝置顶显⽰;Opactiy:0%;整个窗⼝透明度布局:AutoScroll:true / false;如果控件超出窗⼝返回,是否⾃动显⽰滚动条;AutoSize:true / false;窗⼝的范围是否会超出控件的⼤⼩;MaximumSize:0,0;窗⼝可依拖拽的最⼤时的⼤⼩;MinmusmSize:0,0;窗⼝可以拖拽的最⼩的⼤⼩;Size:300,300;窗⼝打开时默认的⼤⼩;StartPasition:CenterScreen;窗⼝打开时默认桌⾯位置,居中;WindowState:Maximized;默认打开窗⼝最⼤化;外观:Font:宋体,9pt;可以修改字体⼤⼩,字体越⼤控件越⼤;Text:输⼊⽂本;TextAlign:⽂字位置;FromBorderStyle:FixedSingle;窗⼝不可拖拽⼤⼩;FromBorderStyle:None;隐藏窗⼝的边框;DropDownStyle:DropDownList;让下拉框⽆法输⼊⽂本;⾏为:MaxLegth:可输⼊的字符长度;PasswordChar:⽂本⽤什么⽂字显⽰;ReadOnly:是否可读;TabIndex:TAB键索引,设置可按顺序来;Visible:控件是否隐藏;WordWrap:是否⾃动换⾏;设计:(Name):当前窗⼝ / 控件的后台名字;⼯具箱:公共控件:buttom:按钮;labell:⽂本;checkBox:复选框;ComboBox:下拉菜框;。
winform常见属性
![winform常见属性](https://img.taocdn.com/s3/m/1949381f3b3567ec102d8a42.png)
窗体的属性:Icon:窗体的右上角图标FormBoarderStyle:窗体的边线样式MaximizeBox:最大化按钮是否可用MinimizeBox:最小化按钮是否可用Opacity:透明度ShowInTaskbar:是否在任务栏上显示StartPosition:启动程序时显示的位置Text:标题栏的名称TopMost:保持在最前端,true.falseWindowState:指示窗体初始时最大化还是最小化还是正常默认确认按钮:AcceptButton默认取消按钮:CancelButton窗体的事件:Load(默认):窗体显示之前最后一个触发的事件,所以我们一般在这个事件中对窗体的控件进行赋值初始化Activated:窗体获得焦点是触发Deactivate窗体失去焦点是触发注意:窗体的Enter和Leave事件被取消,请不要使用FormClosedFormClosing:窗体进入关闭前触发的事件Resize:当窗体的大小发生改变时触发的事件窗体的方法:Close():窗体关闭Hide():隐藏窗体(隐藏窗体)Show():以非模态显示窗体(显示窗体)ShowDialog():以模态的方式打开窗体TextBox:用来接收用户输入的文本的文本框属性:Multiline:true可以多行输入,False单行输入MaxLength:最多输入的文本内容PasswordChar:掩码,将用户的输入改成指定的字符掩盖ReadOnly:文本框内容只读ScollBars:滚动条TextAlign:文本的对齐方式事件:Enter:获得焦点时触发Leave:失去焦点时触发KeyPress:用户按键触发TextChange:当用户更改时触发KeyPress:键盘按一次是触发的事件方法:Focus():获得焦点Select():设置选中的文字SelectAll():选中所有文字Selectionstart:如果选中一段文本,则是起点位置,如果没选中,则指示光标的位置PictureBox属性:Image:设置显示的图片SizeModel:显示的样式事件:Image.FromFile(图片的路径):返回一个Image类型,这是载入到内存中的图片设置Tab键的跳转顺序视图--Tab键顺序TabStop:是否允许该控件获得焦点,true可以,false不可以Sender中存的就是触发事件的控件对象ComBox:属性AutoCompleteC..为赋值CheckBox:属性:ChackState所有控件都继承ControlsradioButton单选框注:为个人总结和查询所得。
winform公共标签和常用属性
![winform公共标签和常用属性](https://img.taocdn.com/s3/m/a8d55bc8ac51f01dc281e53a580216fc700a5395.png)
winform公共标签和常⽤属性公共控件1、Button(按钮):Enabled :确定是否启⽤控件Visible:确定控件是否可见2、CheckBox(多选项) CheckListBox -(多选项列表)可⽤CheckBox和Panel或FlowLayoutPanel代替 Checked:默认选中3、ComboBox(显⽰⼀个可编辑的⽂本框,可下拉选择值): 添加值 可直接点右上三⾓编辑项 也可以在后台将要填进去的内容放到 Items集合中去private void button1_Click(object sender, EventArgs e){for (int i = 0; i < 8; i++){comboBox1.Items.Add(i);}} 取值(SelectedItem)MessageBox.Show(comboBox1.SelectedItem.ToString()); DropDownStyle:只允许选择 SelectedIndex:默认选中项 在构造函数中添加:comboBox1.SelectedIndex = 0;4、dateTimePicker(允许⽤户选择⽇期和时间,并以指定的格式显⽰该⽇期和时间):取值:MessageBox.Show(dateTimePicker1.Text); //中⽂⽇期MessageBox.Show(dateTimePicker1.Value.ToString());// DateTime类型赋值:DateTime dt=ConvertToDateTime(“2000-1-1”);dateTimePicker1.Value=dt;5、Label(为控件提供运⾏时信息和说明性⽂字) LinkLabel(显⽰⽀持超链接功能的标签控件) 给LinkLabel添加链接:private void linkLabel1_Click(object sender, EventArgs e){Process.Start("Chrome", "");}6、ListBox(显⽰⽤户可以从中选择项的列表) SelectionMode :None不让选 One只能选⼀个 MultiExtended连选 MultiSimple多选,并且不⽤连选 代码设置数据源:listBox1.DataSource=⼀个集合 设置显⽰的实际内容:listBox1.ValueMember=(取集合中⼀个对象中的某个具体值) 在后台如何获取多选的全部内容: 利⽤SelectedItems集合,遍历它们private void button3_Click(object sender, EventArgs e){string a = "";foreach(object o in listBox1.SelectedItems){a += o.ToString();}7、ListView(后⾯再讲)8、MaskedTextBox(使⽤掩码区分正确与不正确的⽤户输⼊): Mask:设置控制此控件允许的输⼊的字符串9、MonthCalendar(⽇历): MaxSelectionCount 选择⽇期的时候,最多可以选择多少天 后台代码:SelectionStart SelectionEndMessageBox.Show(monthCalendar1.SelectionStart.ToString() + "-" + monthCalendar1.SelectionEnd.ToString());10、NotifyIcon(托盘程序): Visible:是否可见 Icon :⼩图标 Text :显⽰名称11、NumericUpDown(可以单击控件上按钮增加或减少某个数值的选框) increment :点击按钮每次增减的数值 Maximum:最⼤数值 Minimum:最⼩数值12、pictureBox(放图⽚): Image - 不好⽤ BackgroundImage:⼀般是放在这⾥,配合BackgroundImageLayout布局⽐较⽅便13、ProgressBar(进度条): Value:初始的值 Maximum :最⼤值(⼀般100 ⽅便百分⽐设置) Minimum :最⼩值 style – marquee:不显⽰进度,只显⽰在⼯作(跑马灯) MarqueeAnimationSpeed :进度条不显⽰进度时进⾏运算的速度14、RichTextBox(⼤⽂本框): 特点:本⾝可以设置多⾏并且在超出⾼度之后⾃动出现滚动条 在后台能⽤转义字符text-\r\n15、TextBox(⽂本框): Multiline:多⾏编辑 ScrollBars :滚动条显⽰ WordWrap:⾃动换⾏16、ToolTip(注释): ToolTipTitle :注释内容 只要拖进来这个控件,那所有控件的杂项⾥都会多⼀条属性,就是⽤来设置此控件的介绍 InitialDelay:悬停多少秒能显⽰注释 ReshowDelay:改变控件能够多长时间转换注释 以上两项⼤多情况下不⽤修改17、TreeView(树装列表) 使⽤后台添加数据需要使⽤到递归(后⾯讲) 点击右上⾓三⾓编辑节点可设置节点和⼦级 18、WebBrowser(浏览器创建) 但此控件⾃带的IE内核版本太低,许多⽹页JS不能实现 Url (属性)- Uri (对象)Uri u = new Uri(textBox1.Text);webBrowser1.Url = u;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WinForm控件开发基础教程四控件属性
前一篇文章介绍了常用的设计时Attribute。
其中BrowsableAttribute,CategoryAttribute,DescriptionAttribute,DefaultPropertyAttribute,DefaultEventAttribute都是比较简单的,也是可有可无,但是为了提供更好的用户体验这些Attribute最好不要省掉,如果你对这些Attribute还不熟悉,可以参考我前一篇文章的描述或者查看MSDN,这里我就不在赘述了。
下来我们主要介绍一下DesignerSerializationVisibilityAttribute和TypeConverterAttribute。
DesignerSerializationVisibilityAttribute的功能是指示一个属性是否串行化和如何串行化,它的值是一个枚举,一共有三种类型Content,Hidden,Visible。
Content指示代码生成器为对象包含的内容生成代码,而不是为对象本身,Hidden指示代码生成器不为对象生成代码,visible指示代码生成器为对象生成代码。
假如你的控件有一个集合属性,又想在设计时自动将集合属性的内容生成代码,那么就使用这个Attribute,并将值设为DesignerSerializationVisibility.Content。
TypeConverterAttribute的作用就更大一些,也稍微复杂一些。
TypeConverterAttribute主要的目的是为属性指定一个类型转换器,这个转化器可以将属性的值转换城其它的类型。
.NET 框架已经为大部分常用的类型都提供了类型转换器,比如Color就有ColorConverter,枚举类型就有EnumConverter,等等,所以一般情况下你没有必要写类型转换器,如果你的属性的特殊的类型或者自定义的类型那么就必须要写了。
类型转换器都是从ponentModel.TypeConverter派生出来的,你需要重写其中的一些方法来达到转换的目的,在我们开发的过程中,其实只关心属性的值如何转换成字符串(因为属性的值需要在属性浏览器里显示出来,属性浏览器里显示的都是字符串)和源代码(需要自动为属性的值生成源代码以实现持久化),当然反过来,也要将字符串和源代码转换成属性的值。
另外使用TypeConverter也可以实现子属性,让属性的子属性也显示在属性浏览器里,并且可以折叠。
接下来我就写一个简单的控件来演示一下这个控件。
代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using ponentModel;
using System.Collections;
namespace CustomControlSample
{
public class MyListControl:System.Windows.Forms.Control
{
private List<Int32>_list=new List<Int32>();
public MyListControl()
{
}
[Browsable(true)]
public List<Int32>Item
{
get
{
return_list;
}
set
{
_list=value;
}
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g=e.Graphics;
//绘制控件的边框
g.DrawRectangle(Pens.Black,new Rectangle(Point.Empty,new Size(Size.Width-1,Size.Height-1)));
for(Int32i=0;i<_list.Count;i++)
{
g.DrawString(_list[i].ToString(),Font,Brushes.Black,1,i*FontHeight);
}
}
}
}
我创建了一个简单的List控件,将用户输入的数据显示在控件中,效果图如下:
在这个控件中,我声明了一个集合属性Item供用户输入要显示的整型数值。
我们按照WinForm控件控件开发之二中的方法将控件加到ToolBox里,然后拖到Form设计器中,然后选中控件,在属性浏览中查看控件的属性,属性中有一个Item的属性,属性右边的值显示为Collection,当你点击这个值的时候,值的右边出现一个小按钮,点击这个小按钮,就会出现弹出一个Collection Editor窗口,你可以在在这个编辑器里添加你想显示的整型值,如图:
添加完以后,关闭Collection Editor。
现在我们看看Form设计器为我们生成了什么代码。
对于用户在Form设计器中设计的内容,设计器的代码生成器会将代码生成到窗口类的InitializeComponent()方法中,对于vs2005来说,这个方法位于***.Designer.cs文件中,在我当前的工程中位于Form1.Designer.cs文件中。
在solution浏览器中双击打开这个文件,看看Form设计器为我们生成了什么代码:
this.myListControl1.BackColor=System.Drawing.SystemColors.ActiveCaptionText;
this.myListControl1.Item=((System.Collections.Generic.List<int>) (resources.GetObject("myListControl1.Item")));
this.myListControl1.Location=new System.Drawing.Point(12,34);
="myListControl1";
this.myListControl1.Size=new System.Drawing.Size(220,180);
this.myListControl1.TabIndex=1;
this.myListControl1.Text="myListControl1";
设计器将Item的内容串行化到了资源文件里。
现在我们修改控件的代码,让设计器将Item 的内容串行化到源代码里。
我们为Item属性添加DesignerSerializationVisibilityAttribute,代码片断如下:
[Browsable(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Content)]
public List<Int32>Item
{
get{return_list;}
set{_list=value;}
}
编辑完以后,Build控件工程,回到测试工程里,将Item属性里的值,删掉重新添加,添加完以后,我们再来看看设计器生成的代码:
this.myListControl1.BackColor=System.Drawing.SystemColors.ActiveCaptionText;
this.myListControl1.Item.Add(1);
this.myListControl1.Item.Add(2);
this.myListControl1.Item.Add(3);
this.myListControl1.Item.Add(6);
this.myListControl1.Item.Add(8);
this.myListControl1.Item.Add(9);
this.myListControl1.Location=new System.Drawing.Point(12,34);
="myListControl1";
this.myListControl1.Size=new System.Drawing.Size(220,180);
this.myListControl1.TabIndex=1;
this.myListControl1.Text="myListControl1";
现在设计器将Item的内容串行化到源代码里了。
时间有限,今天就写到这里,下一篇文章我来介绍TypeConverterAttribute。