编程学习,实战演习,由简入繁

核心提示通过下面几个实例,你会信心满满迎接C#编程。Form窗体类属性:BackColor:背景色BackGroundImage:背景图像Cursor:光标显示Font:字体ForeColor:前景色FormBorderStyle:框线样式Righ

通过下面几个实例,你会信心满满迎接C#编程。

Form窗体类属性:

BackColor:背景色

BackGroundImage:背景图像

Cursor:光标显示

Font:字体

ForeColor:前景色

FormBorderStyle:框线样式

RightToLeft:从右到左字体

Text:标题

Enabled:响应用户

AcceptButton:设置按下按钮

DesktopLocation:设置窗体位置

MaximizeBox:显示最大化按钮

MinimizeBox:最小化按钮

StartPosition:开始位置

Opacity:透明度

设置窗体的大小:

通过属性列表中

size展开后可以对

width宽度和

height高度进行设置,直接输入数值:

设置窗体大小

对于窗体大小的设置也可直接用鼠标拖动窗体改变大小,但是在窗体运行时,要让窗体根据填装的控件进行进行自动改变,就要使用

AutoSize和

AutoSizeMode属性,将属性列表中的AutoSize设置为True:

窗体大小随之窗口改变

AutoSizeMode有两个

枚举成员,它们分别是

GrowAndShrink和

GrowOnly,如果选择前者,则窗体不能手动调整,它根据窗体中控件的大小进行自动放大或者缩小,而选择后者,窗体会增大到能够包括所有控件,但是不会缩小设置好的

Size值:

窗体根据控件大小进行调整

窗体运行后的位置:

可通过

StartPosition属性来设置,有一种枚举类型:

窗体运行位置

Manual:表示窗体的位置由Location属性来决定

CenterScreen:显示屏幕的中央位置

WindowDefaultLocation:按windows的默认范围与大小

WindowsDefaultBounds:按windows默认范围

CenterParent:居于父窗体中央

窗体常用方法:

Activate:激活窗体

ActivateMdiChild:激活MDI窗体

Addownedform:加入附属窗体

Centertoparen:窗体位置居于父窗体中央

Centertoscreen:位置居于屏幕中央

Close:关闭窗体

Focus:设置控件的输入焦点

Onclose:触发Closed事件

Onclosing:触发Closing事件

Showdialog:将窗体显示为模式对话框

窗体常用事件:

除了窗体的属性和方法外,还有窗体的事件:

Load:加载窗体所触发的事件,能对变量和对象进行初始值的设置

Activated:激活窗体时,更新窗体控件中所显示的数据

Click:在窗体上单击进行触发事件

双击窗体进入Form1.cs程序代码编辑窗口,事件为“Form1_Load”,在代码区域可以对已有窗体和控件进行初始设置,也可以建立新的窗体和新的控件对象,代码如下:

private void Form1_Load {      //初始化已有对象     button1.ForeColor = Color.Red;     button1.BackColor = Color.Blue;     button1.ForeColor = Color.FromArgb;     button1.BackColor = Color.FromArgb;     label1.BorderStyle = BorderStyle.FixedSingle;     label2.BorderStyle = BorderStyle.FixedSingle;     label5.Size = new Size;     label5.Text = "改变label控件大小";     label5.BorderStyle = BorderStyle.Fixed3D; //建立新的对象     Form Form2 = new Form;//新建一个窗体Form2     Form2.Text = "新的窗体";//窗体标题栏显示的内容     Form2.FormBorderStyle = FormBorderStyle.Fixed3D;//窗体框线设置为对话框3D框线     Button btncancle = new Button;//新建一个按钮btncancle     btncancle.Text = "程序自动添加的按钮";//按钮显示的内容     btncancle.AutoSize = true;//按钮自动设置大小     btncancle.Location = new Point;//按钮位置的设定     Form2.CancelButton = btncancle;//实现按钮的取消操作     Form2.Controls.Add;//将按钮加到新建的窗体上     Form2.ShowDialog;//显示窗体 }

使用代码初始化已有对象时,分别对按钮的forecolor前景色和backgroupnd背景色进行了相应的颜色设置,同时对标签控件的borderstyle边框类型进行了fixedsingle单框线设置。同时还建立了新的窗体和按钮等对象,使用构造函数new form来建立新的窗体form2,并对form2.text窗体标题内容进行设置,同时窗体边框线使用formborderstyle.fixed3D,同时在窗体上放置了一个按钮,并对按钮的大小位置等进行初始化设置,而这里面的的代码:

Form2.CancelButton = btncancle:使按钮实现关闭窗口功能

Form2.Controls.Add:代码实现将按钮添加到form2窗体上

Form2.ShowDialog:代码功能是将窗体显示出来,以便用户能够看到

此时运行程序,看看效果:

窗体自动添加按钮

直接弹出form2窗体,此时form1窗体已经被隐藏了起来,点击form2上的按钮后,则form2窗体关闭,出现了form1窗体:

窗体切换

此时的窗体及控件已经通过

Form1_Load加载事件进行了初始化设置。

在结束按钮下加入下列程序代码,实现退出程序:

private void button2_Click{  Close;}
MessageBox类的使用

MessageBox类可以用来进行显示消息,用到的方法是

show,下面就是单纯的进行消息的显示,即弹出消息对话框:

弹出消息框

使用

MessageBox.Show方法时,括号内放入的内容都是

字符串类型,并且将各种字符串进行了连接,程序运行时最终弹出了上面的消息框:

private void button1_Click {     button1.ForeColor = Color.Red;     button1.BackColor = Color.Blue;     button1.ForeColor = Color.FromArgb ;     button1.BackColor = Color.FromArgb;     label1.BorderStyle = BorderStyle.FixedSingle;     label2.BorderStyle = BorderStyle.FixedSingle;     string useraccount = textBox1.Text;//定义用户名变量     DateTime showtime = DateTime.Now;//当前时间     string savetime = showtime.ToShortTimeString;//时间转字符串     if   MessageBox.Show;     else if      MessageBox.Show;      else    MessageBox.Show; }

但实际上,MessageBox.Show方法还可以对消息对话框加一个标题,下面这段程序即为消息对话框加了一个小标题:

MessageBox.Show;

在括号内加入一个逗号进行前后分割,然后再加入标题字符串即可,在消息框的标题栏的位置出现了刚刚加入的标题:

给消息框加标题

可以看到,在消息对话框上有一个“确定”按钮,还可以加入其它不同功能的按钮,这就需要在后面继续加入参数:

MessageBox.Show;

从下面弹出的消息框看到,在消息框上有两个按钮,这就是通过上面的程序代码段加入的

“MessageBoxButtons.OKCancel”实现的:

带有两个按钮的消息框

当然除了

MessageBoxButtons.OKCancel按钮成员还有几个成员,它们分别是:

AbortRetryIgnore、OK、RetryCancel、YesNo和YesNoCancel

下面这三种方法的效果:

MessageBoxButtons. RetryCancel的效果:

MessageBoxButtons. RetryCancel

MessageBoxButtons. AbortRetryIgnore的效果:

MessageBoxButtons. AbortRetryIgnore

MessageBoxButtons. YesNoCancel的效果:

MessageBoxButtons. YesNoCancel

以上消息对话框的响应按钮能与用户进行不同的响应,可根据需要进行选择

MessageBoxButtons的不同

枚举类型的成员。

再来看一下最后一个参数

MessageBoxIcon的用法,这个参数是用来

显示图标用的,它和MessageBoxButtons的用法类似,也有几个成员,它们分别是下面几种:

MessageBoxIcon成员

这些成员分别显示不同的图标,表明对话框目前显示的信息是什么类型的。,首先在程序代码段加入这个参数:

MessageBox.Show;

MessageBoxIcon.Information效果:

带图标的消息框

MessageBoxIcon.Exclamation效果:

带图标的消息框

MessageBox类实战

介绍完了MessageBox类的用法,那么如何对弹出的消息对话框上的按钮进行响应呢?

在响应操作时,每个按钮都有自己的返回值,程序当中可以使用

if/else语句进行判断,下面通过实战来进行学习。

首先,添加几个必要的控件,一个

label控件,两个

radiobutton控件和一个

button控件:

界面设计

双击确定按钮,进入到程序代码编辑窗口,写入下面这段程序代码:

private void button3_Click {     string message = "输入字符少于3个,请重新输入";//消息框弹出的消息     string account = "输入用户";//定义用户字符串     string password = "输入密码";//定义密码字符串     MessageBoxButtons btn1 = MessageBoxButtons.YesNo;//定义消息框弹出的消息按钮     MessageBoxButtons btn2 = MessageBoxButtons.OKCancel;//定义消息框弹出的消息按钮     MessageBoxIcon icon1 = MessageBoxIcon.Information;//定义消息框弹出的消息图标     MessageBoxIcon icon2 = MessageBoxIcon.Warning;//定义消息框弹出的消息图标     DialogResult result, /confirm/i;//定义用户响应后的返回值     //下面这段代码是判断输入的用户名与密码是否符合条件,并利用自定义的函数将用户响应后的返回值传入参数当中,从而实现程序的判断运行     if      {  if  {      if      {   confirm = MessageBox.Show;   getmessage;      }      else      {   confirm = MessageBox.Show;   getmessage;      }  }  else  {      result = MessageBox.Show;      getmessage;  }     }     else     {  result = MessageBox.Show;  getmessage;     } }

前面的这段程序代码:

string message = "输入字符少于3个,请重新输入":消息框弹出的消息

string account = "输入用户":定义用户字符串

string password = "输入密码":定义密码字符串

MessageBoxButtons btn1 = MessageBoxButtons.YesNo:定义消息框弹出的消息按钮

MessageBoxButtons btn2 = MessageBoxButtons.OKCancel:定义消息框弹出的消息按钮

MessageBoxIcon icon1 = MessageBoxIcon.Information:定义消息框弹出的消息图标

MessageBoxIcon icon2 = MessageBoxIcon.Warning:定义消息框弹出的消息图标

DialogResult result, /confirm/i:定义用户响应后的返回值

这段代码完全是定义数据类型并赋予初值的过程,这里面用到了

string、MessageBoxButtons、MessageBoxIcon和DialogResult不同对象类型,值得一提的是

DialogResult定义了两个变量,它们分别是

result和/confirm/i,这两个变量是用户与消息对话框交互后的结果返回值,在下面这段代码处设置断点后,能够看出

cofirm的值为DialogResult.OK:

cofirm值类型

而这个

DialogResult.OK值是用户在消息对话框弹出后,用户点击确定按钮后的返回值,这里面还自定义了一个函数来实现不同返回值相应的操作:

private void getmessage {     if//判断用户是否点击确定按钮     {  Application.Exit;//如果点击确定按钮,则退出程序     }     else if//判断用户是否点击取消按钮     {  textBox2.Clear;//如果点击取消按钮,则进入密码框内  textBox2.Focus;//光标移动到密码框内     }     else if//判断用户是否点击是按钮     {  textBox1.Clear;//如果点击是按钮,是进入用户名输入框内  textBox1.Focus;//光标移动到用户框内     } }

这个函数有一个参数,而这个参数就是从上面

/confirm/i和result传递过来的,当用户点击确定后则退出程序,否则进入到用户名和密码的重新输入状态。

运行程序,输入正确的用户名及密码后,点击确定按钮后:

弹出消息

这时点击确定后,程序直接退出。如果你输入了不符合条件的用户名:

错误提示信息

点击按钮后,则用户名清空,光标移动到用户框内:

光标锁定位置

如果密码不符合规则,则提示密码重新输入:

提示重新输入

此时点击取消按钮后,密码清空,光标移动到密码框内:

光标锁定到密码框内

label标签控件实战

Label标签控件的几个常用属性,如

borderstyle框线类型属性、

font字体属性、

forecolor前景颜色属性以及

text和name属性等。下面我们再来看一下label控件的其它几个常用属性:

Autosize属性:该属性的默认值为true,它可以根据标签字符串的大小来调整标签的宽度,那么将其属性值设置为false后,则不会进行调整。

Label控件的默认属性为true

此时标签根据内容调整:

内容多长,标签就多宽

将值改成false后:

可以用用鼠标拖动来改变大小

也可以通过程序代码来实现:

Label5.autosize=true;Label5.autosize=false;

还有一个与Autosize属性相关的size属性,它是依赖Autosize属性来设置的,当Autosize属性值为true时,则size属性不能够进行设置,只有当

Autosize属性值为

false时,size属性才能设置

width宽度和height高度:

设置宽度和高度

上面是通过属性窗口进行设置,也可以通过代码来设置:

Label5.autosize=false;//先进行autosize属性值的false设置Label5.size=new size;//调用构造函数,来重新设置宽度和高度label5.Text = "改变label控件大小";//label5控件上显示文本内容label5.BorderStyle = BorderStyle.Fixed3D;//为了看到效果,设置边框线

运行效果:

代码控制大小

Textalign属性

该属性有九种对齐方式,分别是

topleft、topmiddle、topright、middleleft、middlecenter、middleright、bottomleft、bottommiddle和bottomright。它们分别对应下面这九个格子:

对齐方式

其默认值为topleft:

默认为左上

对齐效果:

默认对齐效果

当选择topcenter时,按如下格式对齐:

中上对齐

对齐效果:

文本中上对齐

若要以程序代码编写,则可按下列代码方式:

label3.TextAlign = ContentAlignment.BottomCenter;

当然BottomCenter可以替换为其他几种格式:

代码文本对齐方式

Visible属性

当程序运行时,设置控件是否出现在窗体上,其默认值为true,当值为false时,则程序运行时处于隐藏状态,并不可见:

可视化设置

在属性窗体将其值改为false,则运行程序控件不可见,下图的label3不见啦:

设置为在窗体上不可见

可通过编写代码实现:

label3.Visible = false;//运行时标签控件被隐藏了起来
label标签控件实例

创建windows窗体,在窗体上加入

1个label标签控件、

1个textbox文本框控件、

1个button按钮控件和1

个numericupdown微调按钮控件,需要实现的功能:通过输入借阅书籍每天的费用,调整借阅书籍的天数后,来计算学生借阅书籍的总费用,通过点击计算费用按钮,来实现在label控件上显示借阅总费用:

设计界面

为了方便调用,在按钮触发事件代码编写前,先来建立一个读者类

class reader,通过project项目菜单下的

addclass增加类指令,来创建

reader.cs文件,从而编写程序代码:

添加类

创建类文件:

创建类文件

类文件

进入代码区域:

class reader    {     //定义3个变量 public int total;  private int daymoney; private int days; //定义属性1 public int day {     get { return days; }     set     {  days = value;  total = daymoney * days;     } } //定义属性2 public int DayMoney {     get { return daymoney; }     set { daymoney = value; } } //定义构造函数 public reader  {     this.daymoney = feemoney;     day = money; }    }

前面定义的3个变量

total、daymoney和days分别存放总费用、每天费用和借阅天数。

而在C#里面比较特殊的是可以定义属性,在属性里面可以

通过get和set对变量进行取值和设置值,在这个属性里面实现了总费用的计算,这要比建立函数省事的多,用法如下:

 public int day {     get { return days; }     set     {  days = value;  total = daymoney * days;     } }

再看下面这个函数,它的功能是将传递过来的两个参数进行赋值,从而进行参数运算得到计算结果:

public reader  {     this.daymoney = feemoney;     day = money; }

再来看计算结果按钮触发事件程序代码:

private void button4_Click {     int daymoneys = 0;     if      {  MessageBox.Show;  textBox3.Focus;     }     elsedaymoneys = int.Parse;  int daynum = numdays.Value;mali = new reader;  lbl8.Visible = true;  lbl8.AutoSize = false;  lbl8.BackColor = Color.Pink;  lbl8.Size = new Size;  lbl8.TextAlign = ContentAlignment.MiddleCenter;  lbl8.Text = string.Format; }

前面if…else语句:判断文本框内是否输入每天费用数据;

daymoneys = int.Parse:将文本框数据转换成int型;

int daynum = numdays.Value:将微调按钮的值转换int型进行变量赋值;

mali = new reader:将输入的两个参数通过类进行传递;这里面的mali是定义的类对象,定义的位置位于类的前面:

reader mali;

下面这段代码是对label控件及其一些参数进行设置:

lbl8.Visible = true;

lbl8.AutoSize = false;

lbl8.BackColor = Color.Pink;

lbl8.Size = new Size;

lbl8.TextAlign = ContentAlignment.MiddleCenter;

需要和值得注意的是这段代码:

lbl8.Text = string.Format;

这里面用到

两个特殊字符{0}和{1:C1},

分别对应mali.day和mali.total两个变量,能够对应输出特定格式数据,涵义如下:

对应说明

运行程序:

运行效果

点击微调按钮选择借阅天数,在文本框输入费用,则点击计算费用按钮后,结果输出到label控件上。

ProgressBar进度条实战

你曾经在安装程序或者下载一个文件时,会出现一个信息画面,能够让用户知道安装或者下载的进度,这样的信息画面就是通过进度条来显示的,当程序运行的时间较长时,也可以加入进度条,通过图形化界面来提供某些程序操作的进度。

进度条控件:

进度条常见的属性和方法:

Miimum:默认值为0,设置progressbar进度条控件的最大值

Maximum:默认值为100,设置progressbar进度条控件的最小值

Value:默认值为0,设置progressbar进度条控件的实际进度值

Step:默认值为0,设置progressbar进度条控件每次递增的步长值

Style:默认值为block,显示progressbar进度条的样式

Increment:指定progressbar进度条前移的位置

PerformStep:以Step属性值来显示进度条的刻度

在Style里面有以下三种可供选择,它们分别是:

Block:以数值刻度来表示

Continuous:只会显示进度,并不显示刻度

Margree:以跑马灯方式来显示,无法使用量化进度

显示方式

使用编辑项:

StatusStrip控件本身并没有面板的功能,想要在面板上显示一些信息,必须加入面板,而

toolStripStatusLabel对象提供了面板功能,再根据应用程序的需要来显示文字或者图标信息。

通过

StatusStrip提供的“编辑项”,可以将对象进行重新排列,“编辑项”的用法如下。

启动编辑项:打开工具箱,双击StatusStrip控件加入到窗体上,并在窗体下面的格子里面也出现了StatusStrip控件的标识

启动编辑项

点击编辑项:鼠标右键单击StatusStrip控件,选择Edit Items编辑项指令

点击编辑项

设置项集合编辑器:展开编辑器后,选择statuslabel项→单击add添加按钮,则会加入toolStripStatusLabel1对象,并在成员中列出,也可以通过删除标识进行删除成员→设置成员的属性值

设置项集合编辑器

计时的timer控件:

timer控件是一个非常特殊的控件,它是windows窗体专有的,可以用来处理计时操作,在一定的时间间隔内可以改变画面上图片的位置,让它具有动画效果。

timer有哪些成员:

Enabled:默认值false,是否启动定时器,false为不启动,ture为启动

Interval:默认值0,设置定时器的间隔时间,1000表示1秒

Tick事件:间隔时间内所触发的事件

实例:

程序在运行时,Timer控件是不显示的,因此,在程序窗体界面设计时,并不考虑Timer控件的参与。

Tick事件会根据Interval的时间周期值来不断的更新画面。

设计:在窗体上加入

2个button控件和

1个program控件,并进行相应的属性设置,加入

StatusStrip控件后,右键单击进入编辑项后,选择

statuslabel进行添加后,将

toolStripStatusLabel1的autosize设置为false,将

text属性值设置为“显示时间”,然后再加入一个

toolStripStatusLabel2,也将其

autosize设置为

false将

text属性值设置为

“显示进度”

属性设置

添加timer控件:并设置其属性,加入的timer控件不会显示在窗体上,它在窗体下方,是一个后台运行的组件

添加timer控件

双击开始计时按钮进入代码编辑区,后编写下列代码:

timer1.Start;//启动计时器button1.Enabled = false;//使按钮暂时不起作用button2.Enabled = false;

完整的程序代码如下:

private void button1_Click {     timer1.Start;//启动计时器     button1.Enabled = false;//使按钮暂时不可用     button2.Enabled = false; }

进入窗体界面,双击timer控件,进入代码编辑区,编写下列代码:

progressBar1.Increment;//显示进度条位置//在状态栏显示文字信息toolStripStatusLabel2.Text = string.Concat;//显示日期toolStripStatusLabel1.Text = DateTime.Now.ToShortDateString;//判断是否完成if{//恢复按钮作用button1.Enabled = true;button2.Enabled = true;timer1.Stop;}

完整的程序代码如下:

private void timer1_Tick {     progressBar1.Increment;//显示进度条位置     toolStripStatusLabel1.Text = string.Concat;     //显示日期     toolStripStatusLabel1.Text = DateTime.Now.ToShortDateString;     //判断是否完成     if     {  //恢复按钮作用  button1.Enabled = true;  button2.Enabled = true;  timer1.Stop;     } }

结束按钮加入下列代码:

private void button2_Click {     Close; }

运行程序:

程序运行效果

点击开始计时后,可以看到程序完成的进度啦:

点击开始计时

当全部完成后:

运行完成

结语:喜欢的请关注、收藏、转发!

 
友情链接
鄂ICP备19019357号-22