C#中的Dialog对话框
一、MessageBox弹出框
MessageBox.Show(<字符串> Text, <字符串> Title, <整型> nType,MessageBoxIcon);
MessageBoxButtons类型:
MessageBoxIcon图标样式:
举例
MessageBox.Show("用户名或者密码不能为空");
MessageBox.Show("用户名或者密码不能为空","登录提示");
MessageBox.Show("用户名或者密码不能为空","登录提示",MessageBoxButtons.OKCancel);
MessageBox.Show("用户名或者密码不能为空","登录提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Exclamation);
二、WinForm自带对话框
除PrintPreviewDialog外,所有的对话框都继承于抽象类CommonDialog。
CommonDialog的继承结构
CommonDialog的方法
1、打开文件对话框(OpenFileDialog)
基本属性
示例
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)
属性
示例
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)属性:
2、打印对话框(PrintDialog)属性:
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的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播