窗体(Form)是一个窗口或对话框,是存放各种控件(包括标签、文本框、命令按钮等)的容器,可用来向用户显示信息。
目录
前言
程序执行流程控制模式分为过程控制模式和事件驱动模式
7.2.1控件概述
7.2.2Lable控件
7.2.3Button控件
7.2.4TextBox控件
7.2.5 RadioButton控件
7.2.6 CheckBox控件
7.2.7 ListBox控件
7.2.8 ComboBox控件
7.2.9 PictureBox控件
一、
二、使用步骤
1.创建Windows窗体应用程序的过程
添加一个窗体的操作步骤是:选择“项目”|“添加Windows窗体”菜单命令,在出现的 “添加新项”对话框中,选中“Windows窗体”,输入相应的名称,单击“添加”按钮。
一个Windows应用程序可以包含多个窗体.
7.2.1.控件概述
控件是包含在窗体上的对象,是构成用户界面的基本元素,也是C#可视化编程的重要工具。
工具箱中包含了建立应用程序的各种控件,根据控件的不同用途分为若干个选项卡,可根据用途单击相应的选项卡,将其展开,选择需要的控件。
.NET中的大多数控件都派生于System.Windows.Forms.Control类。Control类实现了所有窗体交互控件的基本功能:处理用户键盘输入、处理消息驱动、限制控件大小等等。
控件的基本属性
例:图片的显示和隐藏。在窗体上放置一个图片框、一个“显示”按钮和一个“隐藏”按钮。开始运行时,图片不可见,“显示“按钮可用,“隐藏”按钮不可用。单击“显示”按钮后,图片显示出来,“显示”按钮变成不可用,而“隐藏”按钮变成可用。
参考步骤及源码:
(1)打开Visual Studio 2015 开发环境,新建一个Windows应用程序项目,在Form1窗体中添加如表1所示的控件。
(2)双击“显示”按钮,Visual Studio 将自动为该按钮添加Click事件处理函数,在函数中完成以下代码。
private void btnShow_Click(object sender, EventArgs e)
{
this.pictureBox1.Visible = true;
this.btnHide.Enabled = true;
this.btnShow.Enabled = false;
}
(3)双击“隐藏”按钮,Visual Studio 将自动为该按钮添加Click事件处理函数,在函数中完成以下代码。
private void btnHide_Click(object sender, EventArgs e)
{
this.pictureBox1.Visible = false;
this.btnShow.Enabled = true;
this.btnHide.Enabled = false;
}
7.2.2Lable控件
Label控件,又称为标签控件,它主要用于显示用户不能编辑的文本,标识窗体上的对象(例如,给文本框、列表框添加描述信息等),另外,也可以通过编写代码来设置要显示的文本信息。
7.2.3Button控件
Button控件,又称为按钮控件,是Windows 应用程序中最常用的控件之一,通常用它来执行命令。
7.2.4TextBox控件
TextBox控件,又称为文本框控件,文本框经常用于获取用户输入或显示文本,通常用于可编辑文本,也可以设定其成为只读控件。
例子:乘法运算。设计一个乘法运算窗口,如下图所示,该窗口能完成浮点数乘法运算。
//参考代码
//求积按钮
private void btnProduct_Click(object sender, EventArgs e)
{
double a = 0, b = 0, s = 0;
try
{
a = Convert.ToDouble(txtMulti1.Text);
b = Convert.ToDouble(txtMulti2.Text);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
s = a * b;
txtPro.Text = Convert.ToString(s);
}
//清空按钮
private void btnClear_Click(object sender, EventArgs e)
{
txtMulti1.Clear();
txtMulti2.Clear();
txtPro.Clear();
}
//退出按钮
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
例子登录窗体设计。设计一个登录窗口。登录窗口是很多应用系统中不可缺少的组成部分。通过验证用户输入的用户名和密码,决定是否允许用户进入系统,可在一定程度上保证系统的安全。
//参考代码
//“登录”按钮
private void btnLogin_Click(object sender, EventArgs e)
{
if ((this.txtUserName.Text == "abc") && (this.txtUserPwd.Text
== "123"))
{
MessageBox.Show("登录成功");
}
else
{
MessageBox.Show("输入错误!");
}
}
//“重填”按钮
private void btnClear_Click(object sender, EventArgs e)
{
this.txtUserName.Clear();
this.txtUserPwd.Clear();
this.txtUserName.Focus();
}
7.2.5RadioButton控件
RadioButton控件,又称为单选按钮,单选按钮(RadioButton)通常成组出现,用于为用户提供两个或多个互相排斥的选项。
如果要在一个Form上创建多个单选按钮组,则需要使用GroupBox或者Panel控件作为容器。
把单选按钮组合在一起,使它们创建一个逻辑单元。首先在窗体上拖放一个GroupBox控件(组框),再把需要的RadioButton按钮放在组框的边界内,RadioButton按钮知道如何改变自己的状态,以反应组框中唯一被选中的选项。
7.2.6 CheckBox控件
CheckBox控件,又称为复选框控件,复选按钮(CheckBox)通常成组出现,用于为用户提供两个或多个互不排斥的选项。
例子简单的学生信息调查窗体。设计实现一个窗体,运行时,用户在第一个文本框中输入姓名,在两个单选按钮中完成性别的选择,在“学过的课程”下对学过的课程进行选择后,单击“提交”按钮,此时,用户的信息将显示在第二个文本框中。
//参考源码
private void btnSubmit_Click(object sender, EventArgs e)
{
string name;
string sex;
string course = null;
name = txtName.Text;
if (rbMale.Checked)
sex = rbMale.Text;
else
sex = rbFemal.Text;
if (cbEnglish.Checked)
course += cbEnglish.Text + " ";
if (cbLaw.Checked)
course += cbLaw.Text + " ";
if (cbPhysics.Checked)
course += cbPhysics.Text + " ";
if (cbPolitics.Checked)
course += cbPolitics.Text + " ";
txtResult.Visible = true;
txtResult.Text = "姓名:" + name + "\r\n\r\n" +
"性别:" + sex + "\r\n\r\n" +
"所学过的课程:" + course;
}
7.2.7ListBox控件
ListBox控件,又称为列表框控件,列表框控件用来显示一组条目,以便让操作者从中选择一条或者多条,然后进行相应的处理。
例子:基于列表框的简单选课窗体开发。编写Windows应用程序,设计实现一个简单选课系统,如图所示。
要求:
(1)点击“添加”按钮,将把在第一文本框中的输入的课程名称添加到左边的列表框中,且所添加的课程不能为空,不能重复。
(2)点击“->”按钮,将把左边列表框中所选课程添加到右边的列表框中,同时在左边的列表框中删除掉该课程。点击“<-”按钮,操作同理。
(3)点击“>>”按钮,将把左边所有的课程都添加到右边的列表框中,同时删除左边列表框中的所有内容。点击“<<”按钮,操作同理。
//代码如下
//添加新的课程
private void btnAddCourse_Click(object sender, EventArgs e)
{
bool exit = false;
if (txtCourse.Text == "")
MessageBox.Show("所添加的课程不能为空。");
else
{
for (int i = 0; i < lbCourse.Items.Count; i++)
if (txtCourse.Text == lbCourse.Items[i].ToString())
{
MessageBox.Show("不能添加重复的课程。");
exit = true;
txtCourse.Clear();
break;
}
if (exit == false)
{
lbCourse.Items.Add(txtCourse.Text);
txtCourse.Clear();
}
}
}
//”->”按钮单击事件
private void btnToRight_Click(object sender, EventArgs e)
{
try
{
this.lbSelectCourse.Items.Add(this.lbCourse.SelectedItem);
this.lbCourse.Items.Remove(this.lbCourse.SelectedItem);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
//”<-”按钮单击事件
private void btnToLeft_Click(object sender, EventArgs e)
{
try
{
this.lbCourse.Items.Add(this.lbSelectCourse.SelectedItem);
this.lbSelectCourse.Items.Remove
(this.lbSelectCourse.SelectedItem);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
//”>>”按钮单击事件
private void btnToRightAll_Click(object sender, EventArgs e)
{
for (int i = 0; i < this.lbCourse.Items.Count; i++)
{
this.lbSelectCourse.Items.Add(this.lbCourse.Items[i]);
}
this.lbCourse.Items.Clear();
}
//”<<”按钮单击事件
private void btnToLeftAll_Click(object sender, EventArgs e)
{
for (int i = 0; i < this.lbSelectCourse.Items.Count; i++)
{
this.lbCourse.Items.Add(this.lbSelectCourse.Items[i]);
}
this.lbSelectCourse.Items.Clear();
}
7.2.8ComboBox控件
ComboBox控件,又称为组合框控件,组合框由两部分组成,即一个文本框和一个列表框。文本框可以用来显示当前选中的条目,如果文本框可以编辑,则可以直接输入选择的条目。单击文本框旁边带有向下箭头的按钮,则会弹出列表框,使用键盘或者鼠标可以在列表框中选择条目。
例子:所属院系与专业信息获取。本例是要在左边的ComboBox中选择你所在的院系名称,在右边的ComboBox中自动添加院系所属的专业,单击【确定】按钮,则在窗口下部的文本框中显示所选择的信息。
例子:在线购物。本案例建立一个模拟在线购物程序,用户输入相应的信息后单击“确定”按钮,显示出用户提交的有关信息。
7.2.9 PictureBox控件
PictureBox控件,又称为图片控件,是用于显示图像的Windows图片框控件。
例子
图片的动态加载。点击不同按钮,分别实现加载绝对路径图片、加载相对路径图片以及通过打开对话框加载图片的功能。
//参考代码
//加载绝对路径图片
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.ImageLocation = "g:\\11.jpg";
}
//加载相对路径图片,图片放在当前项目可执行程序的文件夹下,即bin/Debug目录下
private void button2_Click(object sender, EventArgs e)
{
pictureBox1.ImageLocation = Application.StartupPath +
"\\11.jpg";
}
//通过打开文件对话框加载图片
private void button3_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
pictureBox1.ImageLocation = openFileDialog1.FileName;
}
}