文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-01-31 06:43

关注

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  使用列表框实验目标界面
实验步骤(1):

由图1-14所示,从工具箱之中拖拽列表框ListBox控件到Form窗体上,调整控件基本属性以达到图1-14效果。
实验步骤(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组合框控件属性及方法
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯