C#的WinForm编程真的是和Visual Basic一毛一样的体验

——比隔壁C++的WinForm不知道高到哪里去了(

控件(Control)是WinForm的基本元素

Brief Introduction

Form控件有一个系统自动生成的一个类实例化的对象(默认叫Form1),该类自带Load事件的函数。此类定义于Form1.cs和Form1.Design.cs中。于Program.cs中另有Program.cs内定义了Main函数作为程序的起点。

常见的控件有几个基本共有的属性,如:

  • Size:是一组共两个值,用于确定对象的宽度和高度
  • (Name):相当于该对象在程序中的变量名
  • AutoSize:如果为True则可能造成控件某些维度的手动大小调整不可用
  • Location:是一组两个值,用于确定对象在窗体的位置(x,y),窗体左上顶点为坐标原点,向右为+x,向下为+y

Label(标签)控件

为控件和窗体的其它组成部分提供标识,通常用于提供描述性文字

Label控件由Label类描述,Label类继承自Control类,它在名字空间System.Windows.Forms中。

Label常用属性

  • AutoElipsis:获取或者设定一个值,指示是否要在Label右边缘显示省略号表示文本超过指定长度,否则文本将被直接截断
  • AutoSize:获取或者设定一个值,指示是否自动调整控件大小以显示完整内容
  • BorderStyle:获取或设置控件的边框样式
  • Image:获取或设置显示在Label上的图像
  • Text:获取或设置与此控件相关联的文本,即显示在Label上的文本
  • TextAlign:获取或设置Label中文本的对齐方式

TextBox(文本框)控件

TextBox中的文本可以被编辑,而Label中的不行。

TextBox类所在的名字空间为System.Windows.Forms。

TextBox常用属性

  • AcceptsReturn:获取或设置一个值,该值指示在多行TextBox控件中按Enter键时,是在控件中创建一行新文本还是激活窗体的默认按钮,比如用于选择按回车是输入完了还是换一行
  • AcceptsTab:获取或设置一个值,该值指示在多行TextBox控件中按Tab键时,是在控件中键入一个Tab字符还是按选项卡的顺序将焦点移动到下一个控件
  • BackColor:获取或设置控件的背景色
  • Focused:获取一个值,该值指示控件是否有输入焦点
  • Font:获取或设置控件显示的文字的字体
  • Multiline:获取或设置一个值,该值指示此控件是否为多行TextBox控件
  • PasswordChar:获取或设置字符,该字符用于屏蔽单行TextBox控件中的密码字符
  • ReadOnly:获取或设置一个值,该值指示文本框中的文本是否为只读
  • RightToLeft:获取或设置一个值,该值指示是否将控件的元素对齐以支持从右向左的字体的区域设置
  • SelectedText:获取或设置一个值,该值指示控件中当前选定的文本
  • Text:字符串,获取或设置TextBox中的当前文本
  • TextAlign:获取或设置控件中文本的对齐方式
  • TextLength:获取或设置控件中文本的长度
  • WordWrap:指示多行文本框控件在必要时是否自动换行到下一行开始

TextBox常用事件

  • Click:鼠标单击控件时发生
  • Enter:鼠标进入控件区域时发生
  • GotFocus:在控件得到焦点时发生
  • KeyDown:在控件有焦点时按下按键时发生
  • KeyUp:在控件有焦点时释放按键时发生
  • Leave:在控件失去焦点时发生
  • LostFocus:在控件失去焦点时发生
  • TextChanged:在控件的Text属性值更改时发生(文本被改变

Button(按钮)控件

用户可以单击按钮控件触发程序动作。

Button继承自ButtonBase类,ButtonBase继承自ContentControl类,ContentControl类继承自Control类。

Button常用属性

  • ClickMode:获取或设置Click事件何时发生,ClickMode有3种
    • 悬停,鼠标悬停在该按钮上时激发此按钮
    • 按下,鼠标在该按钮上按下时激发此按钮
    • 释放,鼠标在该按钮上按下后,释放时激发此按钮
  • IsCancel:获取或设置一个值,指示该Button控件是否为取消按钮。用户可以通过ESC键激活取消按钮
  • IsDefault:获取或设置一个值,指示该Button控件是否为默认按钮。用户可以通过Enter键调用默认按钮

Button常用事件

  • Click:按钮被按下时发生(最常用)

选项控件

选项的作用是跟据用户的实际情况在程序运行时调整程序的状态或行为。

选项控件的分类

  • GroupBox(组框)
  • Panel(面板)
  • RadioButton(单选按钮)
  • CheckBox(复选框)

RadioButton

RadioButton(单选按钮)控件是用来让用户在一组选项中选定一项且只能选定一项。

若窗体内仅有一组RadioButton控件时,可以将它们直接放置在这个窗体内。

当有两组或多组选项时,RadioButton应该被放置到一个GroupBox(组框)控件内进行分组。

RadioButton常用属性
  • Text:设定该RadioButton旁边的文本内容
  • CheckAlign:设定控件按钮与文本的位置关系(对齐方式)
  • Checked:由它设定RadioButton的状态(bool类型,True-被选中,False-未被选中(缺省设置))
RadioButton常用事件
  • CheckedChanged:Checked属性改变时发生(默认事件)

    在VS中,双击单选按钮控件,会自动添加默认事件的事件处理函数

CheckBox

ChechBox(复选框)控件是让用户在一组选项中选定一项或多项。

若窗体内仅有一组CheckBox控件时,可以将它们直接放置在这个窗体内。

当有两组或多组选项时,CheckBox应该被放置到一个GroupBox(组框)控件内进行分组。

CheckBox常用属性
  • Text:设定该CheckBox旁边的文本内容
  • CheckAlign:设定控件按钮与文本的位置关系(对齐方式)
  • Checked:由它设定CheckBox的状态(bool类型,True-被选中,False-未被选中(缺省设置))
  • CheckState:指示CheckBox目前的状态,有三个取值
    • Checked:表示被选中状态
    • Unchecked,表示未被选中状态
    • Indeterminate,表示不可用状态(此状态当ThreeState属性为True时有效)
CheckBox常用事件
  • CheckedChanged:Checked属性改变时发生(默认事件)
  • CheckedStateChanged:CheckedState属性改变时发生

GroupBox

GroupBox(组框)是一个容器类控件。

你可以将一组控件放入GroupBox来分类。

组框可以显示标题(文本),但是它没有滚动条。

边框一般比较细。

GroupBox常用属性
  • Controls:组框包含的控件集
  • Text:在组框顶部显示的标题文本

Panel

Panel(面板)与GroupBox类似,也是一个容器类控件。

你也可以将一组控件放入Panel来分类。

面板可以包含滚动条,但是它没有标题。

边框可以通过相关边框属性来调节。

Panel常用属性
  • AutoScroll:当面板由于太小而无法显示所有控件时,这个属性指定是否出现滚动条,默认值为False
  • BorderStyle:设置面板的边界样式,默认为None,其他选项有Fixed3D和FixedSingle
  • Controls:面板包含的控件集

感觉差不多了,就这样吧!