Windows窗体
窗口 <===> GUi
Windows Form窗体启动方法:
通过Application调用Run方法,实现窗口的启动。
启动Form1()窗口示例:
Application.Run(new Form1());
1、常用属性
1、窗口的常用属性
双击窗口,在窗口上右键属性,找到该属性。
1.1、图标(icon)
Icon属性:可通过该属性更换 图标
1.2、边框样式(FormBorderStyle)
FormBorderStyle:窗口边框样式
属性值 | 说明 |
---|---|
Fixed3D | 固定的三维 边框 |
FixedDialog | 固定的对话框样式的粗边框 |
FixedSingle | 固定的单行边框 |
FixedToolWindow | 不可调整大小的工具窗口边框 |
None | 无边框 |
Sizable | 可调整大小的边框 |
SizableToolWindow | 可调整大小的工具窗口边框 |
1.3、窗体显示位置(StartPosition)
属性值 | 说明 |
---|---|
CenterParent | 窗体在其父窗口中居中 |
CenterScreen | 窗体在当前显示窗口中剧中,其尺寸在窗体大小中指定 |
Manual | 窗体的位置由Location属性确定 |
WIndowsDefaultBounds | 窗体定位在Windows默认位置,其边界也由Windows默认决定 |
WindowsDefaultLocation | 窗体定位在Windows默认位置,其尺寸在窗体大小中指定 |
1.4、窗体大小(Size)
双击Size,可以看到Width 和Height 两个属性,修改值即可。
窗体大小的值是 Int32类型的,不要写双精度或单精度的浮点数
1.5、设置图像背景(BackgroundImage)
一、布局属性
1、StartPosition属性
用来获取或设置程序运行时窗体的初始显示位置,该属性有5个可选属性值,默认值为WindowsDefaultLocation
如下表所示:
属性值 说明
Manual 窗体的初始显示位置由Location属性决定
CenterScreen 窗体定位在当前显示屏幕窗口中居中,其尺寸在窗体大小Size中指定
WindowsDefaultLocation 窗体定位在windows默认位置,其尺寸在窗体大小Size中指定
WindowsDefaultBounds 窗体定位在windows默认位置,其边界也由windows默认指定
CenterParent 窗体在其父窗体中居中位置
2、Location属性
获取或者设置显示时其左上角在桌面上的坐标,默认值为(0,0)。
3、尺寸属性
Size、MaximizeSize、MinimizeSize,分别表示窗体正常显示、最大化、最小化时的尺寸,他们分别包含窗体宽度Width和高度Height两个子项。
4、WindowsState属性
用来获取或设置窗体显示时的初始状态。默认为Normal
可选属性值如下表:
属性值 说明
Normal 表示窗体正常显示
Minimized 窗体以最小化显示形态
Maximized 窗体以最大化显示形态
5、Autoscroll属性
用来获取或设置一个值,该值指示当任何控件位于窗体工作区以外时,是否会在该窗体上自动显示滚动条,默认为False。
6、AutoSize属性
当无法全部显示窗体中的控件时是否自动调整窗体大小,默认值为False。
二、样式属性
窗体中有多个与标题栏有关的样式属性,他们大多为布尔类型。
1、ControlBox属性
用来获取或设置一个值,该值指示在该窗体的标题栏中、窗口左角处是否显示控制菜单,值为True时将显示该控制菜单,为False时不显示,默认值为True。
2、MaximizeBox属性
用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮,值为True时将显示该按钮,为False时不显示,默认值为True。
3、MinimizeBox属性
用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮,值为True时将显示该按钮,为False时不显示,默认值为True。
4、HelpButton属性
用来获取或设置一个值,该值指示是否在窗体的标题栏中显示帮助按钮,值为True时将显示该按钮,为False时不显示,默认值为True。
5、ShowIcon属性
用来获取或设置一个值,该值指示是否在窗体的标题栏中是否显示图标,值为True时将显示图标,为False时不显示,默认值为True。
6、Icon属性
获取或设置窗体标题栏中的图标。
7、ShowInTaskbar属性
用来获取或设置一个值,该值指示是否在Windows任务栏中显示窗体,默认值为True。
8、TopMost属性
用来获取或设置一个值,该值指示该窗体是否为最顶层窗体。最顶层窗体始终显示在桌面的最上层,即使该窗体不是当前活动窗体,默认值为False。
9、IsMdiContainer属性
用来获取或设置一个值,该值指示窗体是否为多文档界面中的子窗体的容器。值为True时,窗体是子窗体的容器,为False时,不是子窗体的容器,默认值为False。
10、Opacity属性
获取或设置窗体的不透明度,默认为100%,实际应用中,可以通过该属性给窗体增加一些类似半透明等的特殊效果。
11、MainMenuStrip属性
设置窗体的主菜单,在窗体中添加MenuStrip控件时,Visual Studio .NET会自动完成该属性设置。
三、外观属性
1、Text属性
该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示文字。
2、BackColor
用来获取或设置窗体的背景色。
3、BackgroundImage
用来获取或设置窗体的背景图片。
4、BackgroundImageLayout
设置背景图的显示布局,可选属性值为平铺Tile、居中Center、拉伸Stretch和放大Zoom,默认为Tile。
5、ForeColor
用来获取或设置控件的前景色。
6、Font
获取或设置窗体中显示的文字的字体
7、Cursor
获取或设置当鼠标指针位于窗体上时显示的光标。
8、FormBorderStyle
获取或设置窗体的边框样式,该属性有7个可选值,默认值为Sizable。开发人员可以通过设置该属性值为none,实现隐藏窗体标题栏的功能。
属性值 说明
None 窗体无边框
FixedSingle 固定的单行边框
Fixed3D 固定的三维边框
FixedDialog 固定的对话框式的粗边框
Sizable 可调整大小的边框
FixedToolWindow 固定大小的工具窗口边框
SizableToolWindow 可调整大小的工具窗口边框
4、行为属性
1、Enabled
用来获取或设置一个值,该值指示窗口是否可用,即是否可以对用户交互做出响应。默认值为True。
2、ContextMenuStrip
设置窗体的右键快捷菜单,需要先添加ContextMenuStrip控件,才能设置该属性。
3、AllowDrop
用来获取或设置一个值,该值指示窗口是否可以接受用户拖放到它上面的数据。默认值为False。
4、ImeMode
获取或设置控件的输入法编辑器IME模式。
5、其他属性
AcceptButton
该属性用来获取或设置一个值,该值是一个按钮的名称,当按【Enter】键时就相当于单击了窗体上的该按钮。
CancelButton
该属性用来获取或设置一个值,该值是一个按钮的名称,当按【Esc】键时就相当于单击了窗体上的该按钮。
KeyPreview
该属性用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否接受该事件。值为True时,窗口将接受按键事件,值为False时,窗体不接受按键事件。
2、窗体的常用方法
2.1、常用方法演示:
2.1.1、显示
调用Show方法
public void Show();
Form2 form2 = new Form2();
form2.Show();
2.1.2、隐藏
调用Hide方法
public void Hide()
this.Hide();
Form2 form2 = new Form2();
form2.Show();
2.2、常用方法总结
方法 | 说明 |
---|---|
Show | 让窗体显示出来 |
ShowDialog | 将窗口显示为模拟态对话框(模拟窗口关闭前,父窗口不可做任何操作) |
Hide | 将窗体隐藏起来,但不销毁窗体,也不释放资源。 |
Close | 将窗口关闭 |
Refresh | 刷新并重画窗体 |
Activate | 激活窗体并给予焦点 |
3、事件
c#的事件,稍有不同,它是通过参数进行标识的如(EventArgs,MouseEventArgs)一个是单击事件,一个是鼠标单击事件,稍有不同,Visio Studio可识别这些函数,并在控件的属性板的闪电标下,找到特定的事件,绑定函数即可。
3.1、单击事件(Click)
public event EventHandler Click
private void Form1_Click(object sender, EventArgs e)//单击事件
{
MessageBox.Show("窗口被单击了");
}
private void Form1_Click(object sender, MouseEventArgs e)//鼠标单击事件
{
MessageBox.Show("窗口被鼠标单击了");
}
3.2、加载事件(Load)
public event EventHandler Load
private void Form1_Load(object sender, EventArgs e)//加载事件
{
DialogResult dialog = MessageBox.Show("是否查看窗体","",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if(dialog == DialogResult.Yes)
{
}
}
3.3、关闭事件(FormClosing)
public event FormClosingEventHandler FormClosing
private void Form1_FormClosing(object sender, FormClosingEventArgs e)//关闭事件
{
DialogResult dialogResult = MessageBox.Show("是否关闭窗口!","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if(dialogResult == DialogResult.Yes)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
3.4、常用事件总结
3.4.1、窗体行为和操作相关
事件 | 说明 |
---|---|
Load | 首次启动和加载到内存时会触发该事件 |
FormClosing | 窗口的关闭过程会触发该事件 |
FormClosed | 窗口关闭后会触发该事件 |
Click | 单击窗体会触发该事件 |
DoubleClick | 双击窗体会触发该事件 |
MouseClick | 单击窗体会触发该事件 |
MouseDoubleClick | 双击窗体会触发该事件 |
3.4.2、窗体外观、布局和焦点相关
事件 | 说明 |
---|---|
Resize | 改变窗体大小会触发该事件 |
Paint | 重绘窗体会触发该事件 |
Activated | 窗体得到焦点,即窗体激活时会触发该事件 |
Deactivated | 窗体失去焦点,会触发该事件 |
3.4.3、窗体属性修改相关
事件 | 说明 |
---|---|
TextChanged | 更改标题文本时会触发该事件 |
LocationChanged | 更改窗体位置会触发该事件 |
SizeChanged | 更改窗体大小会触发该事件 |
BackColorChanged | 更改背景颜色会触发该事件 |
FontChanged | 更改窗体字体时会触发该事件 |
4、MDI窗体
4.1、MDI简介和演示
作用:用于同时显示多个文档,每个文档显示在各自的窗口中。
通常又包含了子菜单的窗口菜单,用于在窗口或文档之间进行切换。
父窗体:起到容器作用
子窗体:放在父窗体中的其他窗体(MDI子窗体)
在设置MDI窗体的主窗体时,要尽可能用项目的启动窗体进行设置。
public Form MdiParent{get;set;}
public Form2()
{
InitializeComponent();
this.IsMdiContainer = true;//让MDI父窗口是MDI Container
Form3 form3 = new Form3();
form3.Show();
form3.MdiParent = this;
Form4 form4 = new Form4();
form4.Show();
form4.MdiParent = this;
Form5 form5 = new Form5();
form5.Show();
form5.MdiParent = this;
}
4.2、MDI子窗口排列
public void LayoutMdi(MdiLayout value)
枚举类型参数 MdiLayout 说明
枚举类型 | 说明 |
---|---|
Cascade | 所有MDI子窗体均层叠在MDI父窗体的工作区内 |
TileHorizontal | 所有MDI子窗体均水平平铺在MDI父窗体的工作区内 |
TileVertical | 所有MDI子窗体均垂直平铺在MDI父窗体的工作区内 |
InitializeComponent();
this.IsMdiContainer = true;
Form3 form3 = new Form3();
form3.Show();
form3.MdiParent = this;
Form4 form4 = new Form4();
form4.Show();
form4.MdiParent = this;
Form5 form5 = new Form5();
form5.Show();
form5.MdiParent = this;
LayoutMdi(MdiLayout.TileHorizontal);//水平平铺
LayoutMdi(MdiLayout.TileVertical);//垂直平铺
LayoutMdi(MdiLayout.Cascade);//层叠排列
5、继承窗体
根据现有窗体结构创建一个与其一样的新窗体。
为了从一个窗体继承,包含该窗体的文件或命名空间必须已编译成可执行文件或DLL(动态链接库文件)
5.1、通过编程的方式继承窗体
public partial class Form2 : Test.Form1{
}
按照使用来说,一般是不修改父类的样式,若想改变,需要将父类该控件访问级别修改成 Public
public partial class Form2 : Form1
{
public Form2()
{
InitializeComponent();
}
private void Form2btn_Click(object sender, EventArgs e)
{
MessageBox.Show("窗体2继承窗体1的按钮被点击了", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Text = "Form2";
button01.Click -= new System.EventHandler(base.btn01_Click);
button01.Click += new System.EventHandler(this.Form2btn_Click);
}
}
在上面的示例中:button01变量和btn01_Click方法的访问符都是 public
这样咱们才能访问的到。
四、常用控件
1、简介
常见控件作用:
控件分类 | 作用 |
---|---|
文本类控件 | 可以在控件上显示文本 |
选择类控件 | 可以为用户提供选择的项目 |
分组控件 | 可以将窗体中的其他控件进行分组处理 |
菜单控件 | 为系统制作功能菜单,将应用程序命令分组,使他们更容易访问 |
工具栏控件 | 提供了主菜单中常用的相关工具 |
状态栏控件 | 用于显示窗体上的对象的相关信息,或者可以显示应用程序的信息 |
1.1、添加控件
1.1.1、窗体添加
1、双击窗体,调出该窗体的设计页面。
2、在左侧点击工具箱,并且拉取需要的控件
3、想要编辑控件时,可以选中控件,并右键属性
4、可通过属性的绑定,给该按钮添加样式、位置、事件等
1.1.2、代码添加
private void InitializeComponent()
{
this.button01 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button01
//
this.button01.Location = new System.Drawing.Point(0, 0);
this.button01.Name = "button01";
this.button01.Size = new System.Drawing.Size(100, 35);
this.button01.TabIndex = 0;
this.button01.Text = "弹窗";
this.button01.Click += new System.EventHandler(this.btn01_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.button01);
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Form1";
this.ResumeLayout(false);
}
public System.Windows.Forms.Button button01;
public void btn01_Click(object sender, EventArgs e)
{
DialogResult dialog = MessageBox.Show("是否要打开窗体2", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
switch (dialog)
{
case DialogResult.Yes:
this.Hide();
new Form2().Show();
break;
case DialogResult.No:
break;
default:
MessageBox.Show("出错了,正在退出……");
this.Hide();
break;
}
}
1.2、对齐控件、锁定控件、删除控件
1.2.1、对齐控件
对齐方式 | 说明 |
---|---|
左对齐 | 将选定控件沿它们的左边对齐 |
居中对齐 | 将选定控件演他们的中心点水平对齐 |
右对齐 | 将选定的控件沿它们的右边对齐 |
顶端对齐 | 将选定的控件沿它们的顶边对齐 |
中间对齐 | 将选定的控件沿它们的中心点对齐 |
底部对齐 | 将选定的控件沿它们的底边对齐 |
1.2.2、锁定控件
为防止书写控件太多造成的控件样式,布局发生改变,可通过锁定控件达到效果
选定控件,右键 锁定控件
1.2.3、删除控件
选中控件,delete键
2、文本类控件
2.1、标签控件(Label)
用于显示用户不能编辑的文本,标识窗体上的对象(如文本框等) 也可以通过编写代码来设置要显示的文本信息。
private System.Windows.Form.Label label01 = new System.Windows.Form.Label();
label01.Text = "文本控件(Label)";
控件的显示与隐藏:
label01.Visible = true;//文本控件显示
label01.visible = false;//文本控件隐藏
2.2、按钮控件(Button)
Button控件允许用户通过单击来执行操作,其既可以显示文本,也可以显示图片。
private System.Windows.Form.Button btn01 = new System.Windows.Form.Button();
btn01.Size = new System.Drawing.Size(100,35);
btn01.Text = "按钮";
btn01.Click = new EventHandler(this.Btn01_Click);
private void Btn01_Click(Object sender,EventArgs e){
MessageBox.Show("按钮被点击了","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
}
2.3、文本框控件(TextBox)
用于获取用户输入的数据或者显示文本,通常用于可编辑文本,也可以使其成为只读状态。
2.3.1、只读文本框
private void Form1_Load(Object sender,EventArgs e){//窗体的Load事件
textBox1.ReadOnly = true;//只读
textBox1.Text = "只读文本框";
}
2.3.2、密码文本框
private void Form1_Load(Object sender,EventArgs e){//窗体的Load事件
textBox1.PasswordChar = '@';
textBox1.UseSystemPasswordChar = true;//将使用默认系统密码字符,并且忽略任何字符集 PasswordChar
}
2.3.3、创建多行文本框
private void Form1_Load(Object sender,EventArgs e){//窗体的Load事件
textBox1.Multiline = true;//是其多行显示
textBox1.Text = "多行文本框";
textBox1.Height = 100;//文本框高度
}
2.3.4、突出显示文本框的文本
private void Form1_Load(Object sender,EventArgs e){//窗体的Load事件
textBox1.Multiline = true;//是其多行显示
textBox1.Text = "突出显示的多行文本框:窗前明月官,疑是地上霜! ";
textBox1.Height = 100;//文本框高度
textBox1.SelectionStart = 5;//从文本框中索引为5的位置开始选择
textBox1.SelectionLength = 5;//选择长度为5个字符
}
2.3.5、响应文本框的文本更改事件
private void textBox1_TextChanged(Object sender,EventArgs e){//文本框的TextChanged事件
label01.Text = textBox01.Text;
}
2.4、有格式的文本控件(RichTextBox)
用于显示、输入和操作带有格式的文本。RichTextBox既含有TextBox的所有功能,还可以显示字体、颜色和链接等
2.4.1、滚动条(ScrollBars)
属性值 | 说明 |
---|---|
None | 从不显示任何类型的滚动条 |
Horizontal | WordWap属性设置为false时,当文本超过控件的宽度时,才会显示滚动条 |
Vertical | 当文本超过控件的高度时,才显示 垂直滚动条 |
Both | 只有文本超过了控件的宽度或高度,会出现水平或垂直的滚动条 |
ForcedHorizontal | WordWap属性设置为false时,显示水平滚动条,当文本未超出控件的宽度时,滚动条是浅灰色的 |
ForcedVertical | 始终显示垂直滚动条,当文本未超出控件的高度时,滚动条是浅灰色的。 |
ForcedBoth | 始终显示垂直滚动条,当WordWap属性设置为false时,显示水平滚动条,在文本未超出控件的宽度或长度时,其对应滚动条显示为浅灰色。 |
WordWrap属性:多行文本框控件在必要时是否自动换行到下一行的开始,
所以当WordWrap属性为true,不管ScrollBars属性值是什么,都不会有水平滚动条。
示例:
private void Form1_Load(object sender,EventArgs e){
richTextBox1.Multiline = true;
richTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical;
}
2.4.2、字体属性
2.4.2.1、字体(SelectionFont)
//楷体12号加粗
richTextBox1.SelectionFont = new Font("楷体",12,FontStyle.Bold);
2.4.2.2、字体颜色(SelectionColor)
//蓝色
richTextBox1.SelectionColor = System.Drawing.Color.Blue;
2.4.3、超链接
richTextBox1.Text = "请单击:www.baidu.com,跳转百度!";
private void richTextBox1_LindClicked(object sender,LinkClickedEventArgs e){
System.Diagnostics.Process.Start(e.LinkText);
}
2.4.4、段落格式
//使控件的内容以项目符号列表的格式排列
richTextBox1.SelectionBullet = true;
//使文本左边缘与控件左边缘之间的距离为8像素
richTextBox1.SelectionIndent = 8;
//使文本右边缘与控件右边缘的距离为12像素
richTextBox1.SelectionRightIndent = 12;
3、选择控件
3.1、下拉组合框控件(ComboBox控件)
3.1.1、通过(DropDownStyle属性,将下拉框控件设置为可选择的下拉框)
Simple: 使ComboBox控件的列表部分总是可见的
DropDown: 此属性的默认值,使用户可以编辑ComboBox控件的文本框部分,只有单击右侧的箭头才能显示列表部分。
DropDownList:用户不能编辑ComboBox控件的文本框部分,呈现下拉框的样式(只能选择,不能编辑)。
示例:
private void Form1_Load(object sender,EventArgs e){
//下拉,可选,不可编辑
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.Add("一生所爱");
comboBox1.Items.Add("二生所爱");
comboBox1.Items.Add("三生所爱");
}
3.1.2、选中下拉组合框中可编辑部分的所有文件
public void SelectAll() ——> 选择控件中编辑的所有文本
使用SelectAll之前,首先要将控件的DropDownStyle属性设置为DropDown,这样才能在文本框对选择项进行编辑
示例:
private void Form1_Load(object sender,EventArgs e){
//第一步,首先要将控件的DropDownStyle属性设置为DropDown
comboBox1.DropDownStyle = ComboBoxStyle.DropDown;//下拉,可选,同时可编辑
comboBox1.Items.Add("一生所爱");
comboBox1.Items.Add("二生所爱");
comboBox1.Items.Add("三生所爱");
private void Button1_Click(Object sender,EventArgs e){//选择按钮绑定事件
comboBox1.SelectAll();
}
}
响应组合框更改事件(SelectedValueChanged)
当SelectValue属性更改时,才能触发SelectedValueChanged事件
private void Form1_Load(object sender,EventArgs e){
//第一步,首先要将控件的DropDownStyle属性设置为DropDown
comboBox1.DropDownStyle = ComboBoxStyle.DropDown;//下拉,可选,同时可编辑
comboBox1.Items.Add("一生所爱");
comboBox1.Items.Add("二生所爱");
comboBox1.Items.Add("三生所爱");
private void comboBox1_SelectedValueChanged(Object sender,EventArgs e){
label1.Text = comboBox1.Text;//实时同步Label和ComboBox的Text值
}
}
3.2、复选框(CheckBox控件)
3.2.1、复选框是否选中(CheckState属性)
Checked : 选中
UnChecked : 未被选中
private void checkBox1_Click(Object sender,EventArgs e){
if(checkBox1.CheckState == CheckState.Checked){
MessageBox.Show("复选框被选中了");
}else{
MessageBox.Show("复选框没被选中了");
}
}
3.2.2、相应复选框改变事件(CheckStateChanged)
private void checkBox1_CheckStateChanged(Object sender,EventArgs e){
//当选中或取消选中复选框时,会触发本事件,弹出弹窗
MessageBox.Show("复选框的选择状态发生改变!!");
}
3.3、单选按钮控件(RadioButton控件)
3.3.1、单选按钮是否选中(Checked属性)
单选按钮必须在同一个组里面才能实现单选效果
private void Form1_Load(object sender,EventArgs e){
radioBtn01.Checked = false;
radioBtn02.Checked = false;
}
private void radioBtn01_Click(object sender,EvenArgs e){
if(radioBtn01.Checked == true){
MessageBox.Show("radioBtn01控件被选中了");
}else{
MessageBox.Show("radioBtn01控件被取消选中了");
}
}
private void radioBtn02_Click(object sender,EvenArgs e){
if(radioBtn02.Checked == true){
MessageBox.Show("radioBtn02控件被选中了");
}else{
MessageBox.Show("radioBtn02控件被取消选中了");
}
}
3.3.2、响应单选按钮选中状态更改事件(CheckedChanged)
private void radioBtn1_CheckedChanged(object sender ,EventArgs e){
MessageBox.Show("单选按钮的选中状态在更改!");
}
3.4、数值选择控件(NumericUpDown控件)
显示和输入数值的控件,提供一对上下箭头,单机箭头改变数值,也可以自行输入更改
3.4.1、获取控件中显示的数字
Maximum属性:设置数值的最大值,若输入值大于最大值,则数值自动改为最大值
Minimum属性:设置数值的最小值,若输入值小于最小值,则数值自动改为最小值
Value属性:可以获取NumericUpDown中显示的数值 public decimal Value{get;set;}
示例:
private void Form1_Load(object sender,EventArgs e){
numericUpDown1.Maximum = 20;//控件最大值20
numericUpDown1.Minimum = 1;//控件最小值1
}
private void numericUpDown1_ValueChanged(object sender,EventArgs e){
label1.Text = "当前控件显示的数值为:"+numericUpDown1.Value;
}
UserEdit属性:用户是否已经输入值
ParseEditText方法:将数字显示框中显示的文本转换为数值
UpdateEditText方法:以适当的格式显示数字显示框的当前值
如果UserEdit属性为true,则在验证或更新该值之前,将调用ParseEditText,并查看转换的数值是否在最大最小值之间,并调用UpdateEditText方法来显示当前值
3.4.2、数值的显示方式
DecimalPlaces属性:用于确定在小数点后显示几位数,取值范围[0,99],默认时0
ThousandsSeparator属性:用于确定是否每个3个十位数,就插入一个分隔符,默认情况为false
Hexadecimal属性:控件是否以16进制显示,默认false
private void Form1_Load(object sender,EventArgs e){
numericUpDown1.Maximum = 20;//最大数值为20
numericUpDown1.Minimum = 1;//最小数值为1
numericUpDown1.DecimalPlaces = 2;//显示小数点后两位
}
3.5、列表控件(ListBox)
3.5.1、在ListBox控件中添加或移除项
private void btn01_Click(object sender,EventArgs e){//添加按钮绑定事件
if(textBox1.Text = ""){//是否输入数据
MessageBox.Show("请输入要添加的数据");
}else{
listBox1.Items.Add(textBox1.Text);
}
}
private void btn2_Click(object sender,EventArgs e){
if(listBox1.SelectedItems.Count == 0){
MessageBox.Show("请选择您要删除的数据");
}else{
listBox1.Items.Remove(listBox1.SelectedItem);
}
}