首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1-3 Winform 中的常用控件(3

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

作者头像
py3study
发布2020-01-03 14:38:51
2.4K0
发布2020-01-03 14:38:51
举报
文章被收录于专栏:python3python3python3

8.案例学习:使用组合框控件

本次实验目标是在FORM窗体上建立一个列表框控件,两个组合框控件以及一个文本框控件,通过这些控件彼此之间的关联,学习并掌握ComboBox组合框控件的主要属性和方法。本次实验目标如图1-15所示。

图1-15 ComboBox组合框控件实现目标界面

根据图1-15所示,在窗体初始化时候加载部门信息到列表框和组合框内,上下组合框的DropDownStyle属性不同,上面为DropDown类型,下面为DropDownList类型。当选择上面组合框中的具体工作部门,选中信息将分别呈现在文本框,列表框和下面的列表框之中。

u 实验步骤(1):

由图1-15所示,从工具箱之中拖拽一个列表框控件,两个组合框控件以及一个文本框控件到Form窗体上,调整控件基本属性以达到图1-15效果。在设置上下两个组合框控件时候,分别设置其属性DropDownStyle 属性为DropDown和DropDownList类型。这两种类型呈现的效果完全一样,但是DropDown类型是可以读写的,但是DropDownList类型仅仅为只读状态,不可编辑。DropDownStyle还有一个属性为SimPle,列表信息完全展开,类似于列表框的样式,并且也为只读状态,不可编辑。见图1-16。

图1-16 ComboBox组合框控件DropDownStyle属性的三种状态

u 实验步骤(2):

用鼠标双击窗体界面,进入.cs文件编辑状态准备进行开发。代码加下:

小实验:在窗体初始化事件Form_Load中加载数据到具体控件:

private void Form011_Load(object sender, EventArgs e)         {             this.comboBox1.Items.Add("财务部");             this.comboBox1.Items.Add("产品部");             this.comboBox1.Items.Add("销售部");             this.comboBox1.Items.Add("生产部");             //默认的选择是"产品部"             this.comboBox1.SelectedIndex = 1;             this.comboBox2.Items.Add("财务部");             this.comboBox2.Items.Add("产品部");             this.comboBox2.Items.Add("销售部");             this.comboBox2.Items.Add("生产部");             //默认的选择是"产品部"             this.comboBox2.SelectedIndex = 1;             listBox1.Items.Add("财务部");             listBox1.Items.Add("产品部");             listBox1.Items.Add("销售部");             listBox1.Items.Add("生产部");             //默认的选择是"产品部"             this.listBox1.SelectedIndex = 1;             //请读者注意学习comboBox,listBox控件如何定位值             this.textBox1.Text = "产品部";      }

u 实验步骤(3):

选择上面的ComboBox控件,在其SelectedIndexChanged选择变换事件里面填写下面的代码。

小实验:ComboBox控件的SelectedIndexChanged事件编码:

private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)         {             string mess = comboBox1.SelectedItem.ToString();             comboBox2.SelectedItem = mess;             listBox1.SelectedItem = mess;             textBox1.Text = mess;      }

9.对话框窗口

在用户操作窗体系统时候,经常会遇到与计算机的会话机制,如报错或者某种信息反馈等。从根本上说对话框是继承窗体的并且被模式化的,对话框窗口(Dialog)更多的是从人机交互形式来看的,电脑给出提示所需参数并等待用户输入,使用者输入数据后执行,犹如一问一答的对话双方。Windows程序中一般用窗体来实现这个人机交互形式,由于是用窗体系统实现Dialog,为了达到等待用户输入的目的因此引入了系统对话框窗口概念。

对话框窗口机制是一种典型的重载过程,该重载是通过MessageBox.Show()方法具体体现出来的,关于Show方法的重载类型如表1-4所示。

重载方法参数

说明

Show(string text);

显示具有指定文本的消息框。

Show(string text, string caption);

显示具有指定文本和标题的消息框。

Show(string text, string caption, MessageBoxButtons buttons);

显示具有指定文本、标题和按钮的消息框。

Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);

在指定对象的前面显示具有指定文本、标题、按钮和图标的消息框。

表1-6 MessageBox.Show()方法重载

10. 案例学习:对话框窗口综合应用

(1)非模式对话窗体Show的使用

MessageBox.show()方法打开的窗体被称为是“非模式窗体”,这种对话窗体仅仅是显示出来系统窗口界面而已,其他显示并运行的窗口仍然可以在后台运行。另一方面,由于MessageBox.show()方法未进行绑定,它所显示的各个窗口、对话框是可以相互切换,而不需要关闭当前窗口和对话框。因此我们可以认为,每个由show方法打开的窗口的顺序是非固定的,如果遇到什么问题,由show方法打开的窗口的顺序可能会有很大的改变。

本次实验目标是在Form窗体上建立一系列Button控件,通过这些按钮控件的鼠标单击事件呈现不同的对话框样式,最终显示界面如图1-17所示。

表1-17 MessageBox.Show()方法重载的不同效果

u 实验步骤(1):

由图1-17所示,从工具箱之中拖拽3个Button控件和一个Label标签控件到Form窗体上,调整控件基本属性以达到图1-17效果。

u 实验步骤(2):

用鼠标双击Button控件,进入.cs文件编辑状态准备进行开发。代码加下:

小实验:“问询提示”按钮鼠标单击事件源代码:

private void button1_Click(object sender, EventArgs e)         {             MessageBox.Show("嘿,这是简单提示!","信息提示");             //第一个文本是对话框正文信息,第二个文本是窗体左上角信息标志。         }

小实验:“简单提示”按钮鼠标单击事件源代码:

private void button2_Click(object sender, EventArgs e)         {             DialogResult result = MessageBox.Show("嘿,这是问询提示!","问询提示",MessageBoxButtons.YesNo); //  1、DialogResult属性用于获取或设置MessageBox.Show()方法返回的一个值,该值在单击按钮时返回到父窗体。 //  2、MessageBoxButtons.YesNo表示提示信息为“是,否”两种按钮             if (result == DialogResult.Yes)             {                 label1.Text = "您选择了YES";                          }             else             {                 label1.Text = "您选择了NO";             }         }

小实验:“复杂提示”按钮鼠标单击事件源代码:

private void button3_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("嘿,这是带有图标的问询提示!", "问询提示", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question, MessageBoxDefaultButton.Button3,MessageBoxOptions.RightAlign); //1、MessageBoxButtons.YesNoCancel参数表示按钮为“是、否、取消”三种状态按钮; //2、MessageBoxIcon.Question参数表示为 “问题图标”按钮 //3、MessageBoxDefaultButton.Button3n参数表示默认“取消按钮”为默认触发按钮 //4、MessageBoxOptions.RightAlign 参数表示对话框提示信息居右对齐。             if (result == DialogResult.Yes)             {                 label1.Text = "您选择了图标YES";             }             else if(result==DialogResult.Cancel)             {                 label1.Text = "您选择了图标取消";             }             else if (result == DialogResult.No)             {                 label1.Text = "您选择了图标NO";             }    }

(2)模式对话窗体showDialog()的使用

面对多窗口的调用的时候,我们往往不喜欢窗口之间的随意切换,那样还要花费时间寻找我们需要的窗口。如果业务操作流程一但出现问题,窗口的顺序也有可能被再次打乱,很不顺手。我们可以将show方法转化为showDialog()方法,顾名思义,showDialog()是一个进行路经绑定的show方法,它是不可以自由切换的,换言之,就是当你没有关闭你当前页的前提下,你是无法关闭该页面后面的任一页面的,它是当前唯一(路经打开)为true的。

showDialog()是模式窗体,与show方法的主要区别在于以showDialog()打开的窗体,要等当前窗体关闭后才能操作其他窗体,而show()方法则不受此限制。

建立showDialog()的方法比较简单,比如建立两个Form窗体,通过第一个Form窗体上的Button按钮打开另一个窗体。

小实验:单击一个窗体的button按钮打开另一个窗体源代码:

private void button1_Click(object sender, EventArgs e)         {             Form2 f2 = new Form2();//首先将另一个窗口Form2实例化为f2             this.Visible = false;//将当前窗口设置为不可视;如果不这样处理则系统报错。             f2.ShowDialog();//打开窗口Form2             this.Visible = true;  }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 8.案例学习:使用组合框控件
  • 9.对话框窗口
  • 10. 案例学习:对话框窗口综合应用
相关产品与服务
腾讯云小微
腾讯云小微,是一套腾讯云的智能服务系统,也是一个智能服务开放平台,接入小微的硬件可以快速具备听觉和视觉感知能力,帮助智能硬件厂商实现语音人机互动和音视频服务能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档