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

简介:

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

本次实验目标是在FORM窗体上建立一个列表框控件,两个组合框控件以及一个文本框控件,通过这些控件彼此之间的关联,学习并掌握ComboBox组合框控件的主要属性和方法。本次实验目标如图1-15所示。
1-15 ComboBox组合框控件实现目标界面
根据图1-15所示,在窗体初始化时候加载部门信息到列表框和组合框内,上下组合框的DropDownStyle属性不同,上面为DropDown类型,下面为DropDownList类型。当选择上面组合框中的具体工作部门,选中信息将分别呈现在文本框,列表框和下面的列表框之中。
 
u  实验步骤(1):
 
由图1-15所示,从工具箱之中拖拽一个列表框控件,两个组合框控件以及一个文本框控件到Form窗体上,调整控件基本属性以达到图1-15效果。在设置上下两个组合框控件时候,分别设置其属性DropDownStyle 属性为DropDownDropDownList类型。这两种类型呈现的效果完全一样,但是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;
 }




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

目录
相关文章
|
C# Windows
wpf怎么使用WindowsFormsHost(即winform控件)
原文:wpf怎么使用WindowsFormsHost(即winform控件) 使用方法:   1、首先,我们需要向项目中的引用(reference)中添加两个动态库dll,一个是.
5042 0
|
8月前
|
数据挖掘 Python
【WinForm】WinForm实现音乐播放器
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
68 0
|
C# 容器
在WPF中使用winform控件WebBrowser
在WPF中使用winform控件WebBrowser
|
机器学习/深度学习 数据可视化 程序员
WinForm控件属性大全
WinForm控件属性大全
400 0
|
测试技术
艾伟:WinForm控件开发总结(二)------使用和调试自定义控件
在上一篇文章里我们创建了一个简单的控件FirstControl,现在我来介绍一下怎么使用和调试自己的控件。我希望将过程写的尽可能的详细,让想学习控件开发的朋友容易上手,高手们见谅。       在同一个solution里添加一个Windows Application工程(在Solution Explorer里右键点击CustomControlSample solution选择Add->New Project…),命名为TestControl。
864 0
|
Web App开发
艾伟:WinForm控件开发总结(三)------认识WinForm控件常用的Attribute
在前面的文章里我们制作了一个非常简单的控件。现在我们回过头来看看这些代码透露出什么信息。   这个类是直接从Control类派生出来的,自定义控件都是直接从Control类派生出来的。这个类定义了一个属性TextAlignment,用来控制文本在控件中显示的位置:           ...
977 0
|
C# Windows
WPF自定义控件(五)の用户控件(完结)
原文:WPF自定义控件(五)の用户控件(完结) 用户控件,WPF中是继承自UserControl的控件,我们可以在里面融合我们的业务逻辑。 示例:(一个厌恶选择的用户控件) 后端: using iMicClassBase; using iMicClassBase.
1013 0
|
C# Windows 安全
WinForm控件与WPF控件的交互
原文:WinForm控件与WPF控件的交互 这个问题其实也可以理解为:怎样在WPF/XAML中使用Winform中的控件(如PictureBox)?首先看看XAML代码:(注意下面加粗的部分)              ...
1048 0
|
C# 容器
在WPF中使用WinForm控件方法
原文:在WPF中使用WinForm控件方法 1、      首先添加对如下两个dll文件的引用:WindowsFormsIntegration.dll,System.Windows.Forms.dll。
1186 0
|
C#
在Winform窗体中使用WPF控件(附源码)
原文:在Winform窗体中使用WPF控件(附源码) 今天是礼拜6,下雨,没有外出,闲暇就写一篇博文讲下如何在Winform中使用WPF控件。原有是我在百度上搜索相关信息无果,遂干脆动手自己实现。 WPF控件的漂亮是Winform无法匹及的,本文主旨是在Winform工程中如何使用WPF控件。
1775 0