C#中的Dialog对话框

一、MessageBox弹出框

MessageBox.Show(<字符串> Text, <字符串> Title, <整型> nType,MessageBoxIcon);

  • 第一个参数是 String 类型,表示提示框里面的 内容;
  • 第二个参数是String 类型,表示提示框的 标题;
  • 第三个参数是整数类型,表示消息框的类型  ,一般的都使用系统提供的几种类型;
  • 第四个参数是提示框的 图标,比如说警告、提示、问题等等。

MessageBoxButtons类型:

  • AbortRetryIgnore: 消息框包含“中止”、“重试”和“忽略”按钮。
  • OK :消息框包含“确定”按钮。(默认)
  • OKCancel : 消息框包含“确定”和“取消”按钮。(上例所示)
  • RetryCancel  :消息框包含“重试”和“取消”按钮。
  • YesNo :消息框包含“是”和“否”按钮。
  • YesNoCancel :消息框包含“是”、“否”和“取消”按钮

MessageBoxIcon图标样式:

  • MessageBoxIcon.Question
    MessageBoxIcon.Asterisk
    MessageBoxIcon.Information
    MessageBoxIcon.Error
    MessageBoxIcon.Stop
    MessageBoxIcon.Hand
    MessageBoxIcon.Exclamation
    MessageBoxIcon.Warning

举例

MessageBox.Show("用户名或者密码不能为空");
MessageBox.Show("用户名或者密码不能为空","登录提示");
MessageBox.Show("用户名或者密码不能为空","登录提示",MessageBoxButtons.OKCancel);
MessageBox.Show("用户名或者密码不能为空","登录提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Exclamation);

二、WinForm自带对话框

除PrintPreviewDialog外,所有的对话框都继承于抽象类CommonDialog。

CommonDialog的继承结构

  • 1、文件对话框(FileDialog) 它又常用到两个:

    • 打开文件对话框(OpenFileDialog)
    • 保存文件对话(SaveFileDialog)
  • 2、字体对话框(FontDialog)
  • 3、颜色对话框(ColorDialog)
  • 4、打印预浏对话框(PrintPreviewDialog)
  • 5、页面设置(PrintDialog)
  • 6、打印对话框(PrintDialog)

CommonDialog的方法

  • OnHelpRequest(EventArgs):    引发 HelpRequest 事件。
  • Reset():在派生类中被重写时,将通用对话框的属性重置为默认值。
  • ShowDialog():    用默认的所有者运行通用对话框。
  • ShowDialog(IWin32Window) :   运行具有指定所有者的通用对话框。

1、打开文件对话框(OpenFileDialog)

基本属性

  • InitialDirectory 对话框的初始目录
  • Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"
  • FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
  • RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
  • FileName 获取或设置一个包含在文件对话框中选定的文件名的字符串。
  • Title 将显示在对话框标题栏中的字符
  • AddExtension 是否自动添加默认扩展名
  • CheckPathExists 在对话框返回之前,检查指定路径是否存在
  • DefaultExt 默认扩展名
  • DereferenceLinks 在从对话框返回前是否取消引用快捷方式
  • ShowHelp 启用"帮助"按钮
  • ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列

示例

System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.OpenFileDialog();
dlg.Title = "打开文件";
dlg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Templates);
dlg.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
dlg.FilterIndex = 2;
dlg.RestoreDirectory = true;
if (dlg.ShowDialog() == DialogResult.OK)
{
    if (dlg.FileName != "") //如果dlg.Multiselect=true;可以是dlg.FileNames
    {
        MessageBox.Show("你选择了" + dlg.FileName);
    }
}

2、保存文件对话框(SaveFileDialog)

属性

  • Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"
  • FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
  • RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
  • AddExtension 是否自动添加默认扩展名
  • CheckFileExists 获取或设置一个值,该值指示如果用户指定不存在的文件名,对话框是否显示警告。
  • CheckPathExists 在对话框返回之前,检查指定路径是否存在
  • Container 控制在将要创建文件时,是否提示用户。只有在ValidateNames为真值时,才适用。
  • DefaultExt 缺省扩展名
  • DereferenceLinks 在从对话框返回前是否取消引用快捷方式
  • FileName 获取或设置一个包含在文件对话框中选定的文件名的字符串。
  • InitialDirector 对话框的初始目录
  • OverwritePrompt 控制在将要在改写现在文件时是否提示用户,只有在ValidateNames为真值时,才适用
  • ShowHelp 启用"帮助"按钮
  • Title 将显示在对话框标题栏中的字符
  • ValidateNames 控制对话框检查文件名中是否不含有无效的字符或序列

示例

System.IO.Stream stream;
System.Windows.Forms.SaveFileDialog saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
    if ((stream = saveFileDialog1.OpenFile()) != null)
    {
        // Code to write the stream goes here.
        stream.Close();
     }
}

3、打印预览对话框和打印对话框

1、打印预览对话框(PrintPreviewDialog)属性:

  • AutoScrollMargin 获取或设置自动滚动边距的大小。
  • AutoScrollMinSize 获取或设置自动滚动的最小尺寸。
  • DialogResult 获取或设置窗体的对话框结果。
  • Document 获取或设置要预览的文档。
  • HelpButton 获取或设置一个值,该值指示是否应在窗体的标题框中显示“帮助”按钮。

2、打印对话框(PrintDialog)属性:

  • AllowPrintToFile 禁止或使用"打印到文件"复选框
  • AllowSelection 禁止或使用"选定内容"单选框
  • AllowSomePages 禁止或使用"页"单选按钮
  • Document 从中获取打印机设置的PrintDocument
  • PrintToFile 打印到文件"复选框是否选中
  • ShowHelp 控制是否显示"帮助"按钮
  • ShowNetWork 控制是否显示"网络"按钮

3、示例:

private void printPreviewButton_Click(object sender, EventArgs e)
{
    StreamReader streamToPrint = new StreamReader("PrintMe.Txt");
    try
    {
        PrintDocument pd = new PrintDocument(streamToPrint); //假定为默认打印机
        if (storedPageSettings != null)
        {
            pd.DefaultPageSettings = storedPageSettings;
        }
        PrintPreviewDialog dlg = new PrintPreviewDialog();
        dlg.Document = pd;
        dlg.ShowDialog();
    }
    finally
    {
        streamToPrint.Close();
    }

}

private void printButton_Click(object sender, EventArgs e)
{

    StreamReader streamToPrint = new StreamReader("PrintMe.Txt");
    try
    {
        PrintDocument pd = new PrintDocument(streamToPrint);
        PrintDialog dlg = new PrintDialog();
        dlg.Document = pd;
        DialogResult result = dlg.ShowDialog();
        if (result == DialogResult.OK)
            pd.Print();

    }
    finally
    {
        streamToPrint.Close();
    }

}

三、自定义对话框

1 模态窗口: ShowDialog():

打开模态窗口后,只要不关闭该窗口,鼠标焦点或者光标就会一直停留在该窗口上。只有关闭该窗口后,调用窗口才能继续。

模态窗口关闭后,仍可以读取模态窗口中的信息,如窗口的返回状态等,以后还可以使用ShowDialog()使其可见。

2 非模态窗口: Show():

打开非模态窗口后,仍可以操作调用窗口。后面的代码立即执行。

关闭非模态窗口,该窗口将不复存在,会释放窗口的所有资源,所以无法得到该窗口的任何信息。常用Hide()方法(等效于Visible=false)然后调用Show()方法使其可见。

3、对话框窗体:Form2

public Form1(string para)//获取参数
{
    InitializeComponent();

    this.StartPosition = FormStartPosition.CenterParent;//启动位置,父窗口中央
    this.MaximizeBox = false;
    this.MinimizeBox = false;
    this.ShowIcon = false;//不显示图标
    this.ControlBox = false;
    this.ShowInTaskbar = false;
    this.FormBorderStyle = FormBorderStyle.FixedDialog;//边框样式为固定对话框
    this.btnOK.DialogResult = DialogResult.OK;//"Enter"为OK按钮
    this.btnCancel.DialogResult = DialogResult.Cancel;//“ESC”为Cancel按钮
    this.textBox1.Text = para;
}

public string ReturnText //定义一个公共属性,供调用窗口Form1使用
{
    get { return this.textBox1.Text + "b"; }
}

private void Form1_Load(object sender, EventArgs e)
{
    if (this.Owner.Name != "Form1")//Owner为调用窗体,即调用改对话框的窗体
        MessageBox.Show("非法调用");
}

private void BtnOK_Click(object sender, EventArgs e)
{
    if (this.textBox1.Text.Trim().Length == 0)
        MessageBox.Show("无输入");
    this.textBox1.Focus();
    this.DialogResult = DialogResult.None;//阻止隐藏对话框,对话框不消失
}

4、主窗体Form1:

Form f2 = new Form2("a");

if (f2.ShowDialog(this) == DialogResult.OK)//对应Form2中的Owner,this为给对话框窗体传值
    this.textBox1.Text = f2.ReturnText;
f2.Close();
f2.Dispose();

到此这篇关于C#对话框Dialog的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C#开发Winform控件之打开文件对话框OpenFileDialog类

    OpenFileDialog类提供了用户打开文件的功能,它有如下属性: 属性 InitialDirectory:设置对话框的初始目录. Filter: 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*". FilterIndex: 在对话框中选择的文件筛选器的索引,如果选第一项就设为1. RestoreDirectory: 控制对话框在关闭之前是否恢复当前目录. FileName:第一个在对话框中显示的文件或最后一个选取的文件. T

  • C#实现winform自动关闭MessageBox对话框的方法

    本文实例讲述了C#实现winform自动关闭MessageBox对话框的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.Inte

  • Winform OpenFileDialog打开文件对话框

    OpenFileDialog类提供了用户打开文件的功能,它有如下属性: 属性 InitialDirectory:设置对话框的初始目录. Filter:要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*". FilterIndex:在对话框中选择的文件筛选器的索引,如果选第一项就设为1. RestoreDirectory:控制对话框在关闭之前是否恢复当前目录. FileName:第一个在对话框中显示的文件或最后一个选取的文件. Titl

  • winform 实现选择文件和选择文件夹对话框的简单实例

    实例如下: //选择文件,点击[浏览],选择文件 private void button1_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); //显示选择文件对话框 openFileDialog1.InitialDirectory = "c:\\"; openFileDialog1.Filter = "txt files (*.txt)|*.tx

  • C#弹出对话框确定或者取消执行相应操作的实例代码

    一.基于WINFORM下的选择对话框 在WINFORM下,我们可以利用系统的对话框(MessageBox)来实现,具体思路是读取MessageBox的返回值(YES或NO)来达到对操作的控制.下面是一个演示程序代码代码如: private void button1_Click(object sender, System.EventArgs e) { label1.Text=""; DialogResult MsgBoxResult;//设置对话框的返回值 MsgBoxResult =

  • JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法

    背景:想通过Esc键关闭展示中的Dialog对话框,发现有些对话框可以,有些会失效. 原因分析: 1.对话框上可以输入内容的标签元素可以,反之不行. 2.如果鼠标点击对话框后,也可以Esc键关闭. 可以看出对话框上是需要聚焦就可以了. 解决方案: 方案一: focus:function(){ $("#id").focus(); } 方案二: 延迟聚焦 setTimeout(function() { $("#id").focus(); }, 500); 以上所述是小编

  • jQuery UI库中dialog对话框功能使用全解析

    对话框(dialog),是jQuery UI 非常重要的一个功能.它彻底的代替了JavaScript 的alert().prompt()等方法,也避免了新窗口或页面的繁杂冗余. 一.开启多个dialog    只要设置不同的id 即可实现. $('#x').dialog(); $('#y').dialog(); 二.修改dialog 样式    在弹出的dialog 对话框中,在火狐浏览器中打开Firebug 或者右击->查看 元素.可以看看dialog 的样式,对dialog 的标题背景进行修

  • Android中Dialog对话框的使用小结

    前言 最近有些空时间,所以花了一个小时对Dialog对话框使用小结一下,比较基础,希望对你学习有帮助,大牛请直接关闭网页.如果你是新手,建议你亲自敲一遍代码. 先看一下效果: Dialog对话框使用小结 一.普通对话框 AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setTitle("温馨提示");//标题 builder.setMessage("天气冷,注意保暖")

  • Android Dialog 对话框详解及示例代码

    Android Dialog 对话框 1.Dialog介绍 2.AlertDialog的基本使用 3.自定义对话框 Custom Dialog 一.Dialog介绍 Dialog也是Android中常用的用户界面元素,他同Menu一样也不是View的子类.让我们看一下它的继承关系: 这里要留意一下他的直接子类 AlertDialog,和间接子类 DatePickerDialog,ProgressDialog,TimePickerDialog,其中后三个我们在前面的章节已经讲过,今天我们把重点放在

  • Android UI系列-----Dialog对话框示例

    在Android开发当中,在界面上弹出一个Dialog对话框使我们经常需要做的,本篇随笔将详细的讲解Dialog对话框这个概念,包括定义不同样式的对话框. 一.Dialog 我们首先来看看android官方文档对Dialog的介绍 A dialog is a small window that prompts the user to make a decision or enter additional information. A dialog does not fill the screen

  • jQuery Dialog对话框事件用法实例分析

    本文实例讲述了jQuery Dialog对话框事件用法.分享给大家供大家参考,具体如下: Dialog对话框事件 对话框应用场景 对话框是最常用.最实用的功能. 1) 静态提示类对话框,对话框的内容是固定的 2) 动态提示类对话框,对话框内容是根据事件源变化的 3) 遮罩类对话框,对话框弹出时背景变灰并且不可选 使用jQuery UI的Dialog 组件可以轻松实现上面三种效果 Dialog组件的主要特点是可以拖动(Draggable),可以改变大小(Resizable). Dialog对话框的

  • Android Dialog对话框用法实例详解

    本文实例讲述了Android Dialog对话框用法.分享给大家供大家参考,具体如下: Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int),dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). 1. onCreat

  • Android中AlertDialog各种对话框的用法实例详解

    目标效果: 程序运行,显示图一的几个按钮,点击按钮分别显示图二到图六的对话框,点击对话框的某一项或者按钮,也会显示相应的吐司输出. 1.activity_main.xml页面存放五个按钮. activity_main.xml页面: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools&

  • Android 中自定义Dialog样式的Activity点击空白处隐藏软键盘功能(dialog不消失)

    一.需求触发场景: 项目中需要开发带有EditText的Dialog显示,要求在编辑完EditText时,点击Dilog的空白处隐藏软键盘.但是Dialog不会消失.示例如下: 二.实现方法: 发布需求时,我个人曾想过直接通过new的方式直接创建Dialog,经过多次尝试,无法实现要求,所以采用将Activity设置为Dialog样式进行展示,调用方法实现需求.具体实现如下: 本次演示示例的工程结构: 2.1AndroidMainfest.xml配置文件 需要在配置文件中将需要显示为dialog

  • Android Dialog对话框实例代码讲解

    Dialog的基本方法 //创建Dialog AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); //设置标题图标 builder.setIcon(R.drawable.ic_launcher); //设置标题 builder.setTitle("这是一个对话框"); //设置信息 builder.setMessage("是否要跳转?"); //确定按钮 setPosit

随机推荐

其他