4. 案例学习:用户登录功能设计
本次实验目标是通过用户键入名称和密码,经过判别为非空性之后,再判断是否符合系统规定的内容,无论成功或者失败都提示用户操作结果。如图1-12所示为目标界面:
图1-12 用户登录功能设计目标界面
u
实验步骤(1):
由图1-12所示,从工具箱之中拖拽标签控件、Button按钮控件以及在工具栏内的容器之中的groupBox控件到Form窗体上,调整各个控件基本属性以达到图1-12效果。特别值得注意的是对于用户密码文本框的设置工作,其更改属性办法如图1-13所示:
图1-13 改变文本框属性成为密码框
u
实验步骤(2):
用鼠标双击“确定”按钮,进入.cs文件编辑状态准备进行开发。代码加下:
小实验:
用户登录功能源代码:
private
void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
//此处复习逻辑或关系的编写和如何判别字串为空
{
MessageBox.Show("信息禁止为空!", "登录提示");
//WinForm环境下的弹出对话框
textBox1.Clear();
textBox2.Clear();
textBox2.Focus();
//清空名称和密码文本框,并使得名称文本框获得焦点。
return;
}
if (!textBox1.Text.Equals("admin") || !textBox2.Text.Equals("admin"))
{
MessageBox.Show("用户名称或密码为空!", "登录提示");//WinForm环境下的弹出对话框
textBox1.Clear();//清理文本框的内容
textBox2.Clear();
textBox2.Focus();//清空名称和密码文本框,并使得名称文本框获得焦点。
return;
}
else
{
MessageBox.Show("欢迎您登录本系统!", "消息提示");//WinForm环境下的弹出对话框
textBox1.Clear();
textBox2.Clear();
textBox2.Focus();
}
}
}
|
小实验:
取消功能源代码:
private
void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox2.Focus();//清空名称和密码文本框,并使得名称文本框获得焦点。
}
|
问题讨论:
代码是正确的,但是否是有效率的代码呢?
具有相同功能的业务逻辑必须集中处理,惟其如此才可以做到代码的高可维护性和高可用性。将上述“清空名称和密码文本框,并使得名称文本框获得焦点” 部分代码改为公用方法clear(),代码如下:
小实验:
优化后的源代码:
if
(textBox1.Text == string.Empty || textBox2.Text == string.Empty)
{
MessageBox
.Show(
"信息禁止为空!","登录提示"
);
clear();
return;
}
if
(!textBox1.Text.Equals("admin") || !textBox2.Text.Equals("admin"))
{
MessageBox
.Show(
"用户名称或密码为空!"
,
"登录提示"
);
clear();
return;
}
else
{
MessageBox
.Show(
"欢迎您登录本系统!"
,
"消息提示"
);
clear();
}
}
public void
clear()
//将具有共性的代码通过方法进行封装以提高执行效率
{
textBox1.Clear();
textBox2.Clear();
textBox2.Focus();
}
}
|
5.ListBox列表框控件
ListBox列表框控件主要用以显示多行文本信息,以提供用户选择之用。其基本的属性和方法定义如表1-4所示:
属性
|
说明
|
Items
|
列表框中的具体项目,需要用户自行编辑
|
SelectionMode
|
指示列表框是单项选择,多项选择还是不可选择
|
SelectedIndex
|
被选中的行索引,默认第一行为0
|
SelectedItem
|
被选中的行文本内容
|
SelectedItems
|
ListBox
的选择列表集合
|
Text
|
默认的文本内容
|
方法
|
说明
|
ClearSelected
|
清除当前选择
|
事件
|
说明
|
SelectedIndexChanged
|
一旦改变选择即触发该事件
|
表1-4 ListBox列表框控件属性及方法
6.案例学习:使用列表框控件
本次实验目标是在Form窗体上建立一个列表框控件,窗体初始化的时候加载信息到列表框之中,当用户用鼠标点击某一行列表框内的信息时候,弹出对话框显示改行具体的文本信息内容。如图1-14所示为目标界面:
图1-14 使用列表框实验目标界面
u
实验步骤(1):
由图1-14所示,从工具箱之中拖拽列表框ListBox控件到Form窗体上,调整控件基本属性以达到图1-14效果。
u
实验步骤(2):
用鼠标双击窗体界面,进入.cs文件编辑状态准备进行开发。代码加下:
小实验:
窗体初始化加载事件源代码:
private
void Form1_Load(object sender, EventArgs e)
{
this.listBox1.Items.Add("软件部");
this.listBox1.Items.Add("硬件部");
this.listBox1.Items.Add("财务部");
this.listBox1.Items.Add("人事部");//通过Add方法实现对下拉列表控件的信息填充工作。
}
|
小实验:
单击ListBox的某行获取该行信息源代码:
private
void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("您选择的部门是:" + listBox1.SelectedItem.ToString() + ",位列第" + listBox1.SelectedIndex.ToString(), "信息提示");
//注意学习:listBox的SelectedIndex属性代表选中的行数
//注意学习:listBox的SelectedItem属性代表选中的行信息内容
}
|
7.ComboBox组合框控件
ComboBox组合框控件为典型的多选一控件,主要用以限制用户在多个固定信息情况下选择唯一一行的文本信息,以确认用户选择逻辑。其基本的属性和方法定义如表1-5所示:
属性
|
说明
|
DropDownStyle
|
ComboBox
控件的样式
|
MaxDropDownItems
|
下拉区显示的最大项目数
|
方法
|
说明
|
Select
|
在 ComboBox 控件上选定指定范围的文本
|
表1-5 ComboBox组合框控件属性及方法
本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/201516,如需转载请自行联系原作者