1-3 Winform 中的常用控件(2)

简介:

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();
        }
}

5ListBox列表框控件

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属性代表选中的行信息内容
    }

7ComboBox组合框控件

ComboBox组合框控件为典型的多选一控件,主要用以限制用户在多个固定信息情况下选择唯一一行的文本信息,以确认用户选择逻辑。其基本的属性和方法定义如表1-5所示:
属性
说明
DropDownStyle
ComboBox  控件的样式
MaxDropDownItems
下拉区显示的最大项目数
方法
说明
Select
 ComboBox 控件上选定指定范围的文本
1-5 ComboBox组合框控件属性及方法




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/201516,如需转载请自行联系原作者

目录
相关文章
|
C# Windows
wpf怎么使用WindowsFormsHost(即winform控件)
原文:wpf怎么使用WindowsFormsHost(即winform控件) 使用方法:   1、首先,我们需要向项目中的引用(reference)中添加两个动态库dll,一个是.
5068 0
|
9月前
|
数据挖掘 Python
【WinForm】WinForm实现音乐播放器
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
69 0
|
9月前
38【WinForm】WinForm常见窗体技术汇总
- 窗体调用外部程序与渐变窗体 - 按回车键跳转窗体中的光标焦点 - 剪切板操作
51 0
|
C# 容器
在WPF中使用winform控件WebBrowser
在WPF中使用winform控件WebBrowser
|
C# 数据库
WPF学习—控件
WPF学习—控件
WPF学习—控件
|
Web App开发
艾伟:WinForm控件开发总结(三)------认识WinForm控件常用的Attribute
在前面的文章里我们制作了一个非常简单的控件。现在我们回过头来看看这些代码透露出什么信息。   这个类是直接从Control类派生出来的,自定义控件都是直接从Control类派生出来的。这个类定义了一个属性TextAlignment,用来控制文本在控件中显示的位置:           ...
978 0
|
C# Windows 安全
WinForm控件与WPF控件的交互
原文:WinForm控件与WPF控件的交互 这个问题其实也可以理解为:怎样在WPF/XAML中使用Winform中的控件(如PictureBox)?首先看看XAML代码:(注意下面加粗的部分)              ...
1050 0
|
C# 容器
在WPF中使用WinForm控件方法
原文:在WPF中使用WinForm控件方法 1、      首先添加对如下两个dll文件的引用:WindowsFormsIntegration.dll,System.Windows.Forms.dll。
1187 0