对话框也是一种窗体,通常调用对对话框相关类型的ShowDialog方法来弹出对话框,当用户关闭对话框后,该方法会返回一个DialogResult枚举值,通过该值就可以判断用户采取了什么操作,例如单击确认按钮后,对话框关闭,showDialog方法返回DialogResult.ok,更具返回值就能知道确认了操作。

  FileDialog类提供了选择文件对话框的基本结构,他是一个抽象类,并派生出两个子类——OpenFileDialog和SaveFialeDialog

  OpenDialog用于打开文件,SaveFialeDialog用于保存文件是选新文件夹。打开文件对话框应该选择已存在的文件,所以通过CheckFileExists属性控制是否检查文件的存在性,默认为True,应为打开不存在的文件没有意义。在使用SaveFileDialog来选择新文件的文件名,有时候会遇到保存的文件已经存在的情况,所以OverwritePrompt属性应该为True,当保存的文件存在的情况下提示用户是否要覆盖现有文件。

  Filter属性是指定在选择文件对哈框中应该显示那些文件。用字符串表示。

文本文件(*.txt)|*.txt  (|  符号,管道符号,分隔)

  在选择完成后,单击“确认按钮”关闭对话框,可以从FileName属性获得文件名字,该属性是返回的文件全部路径。

  对于OpenFileDialog来说,Multiselect属性为Ture,支持选择多个文件,可以从FileNames属性中得到一个string数组,代表用户已经选择的文件列表。

例如:OpenFileDialog和SaveFileDialog对话框的使用

在打开按钮Click事件添加

    private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//显示文件名
label1.Text = openFileDialog1.FileName;
//加载图片
try
{
using (System.IO.FileStream Stream = System.IO.File.Open(openFileDialog1.
FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read))
{
//创建图像
Image img = Image.FromStream(Stream);
//在pictureBox中显示图像
pictureBox1.Image = img;
//关闭文件流,释放资源
Stream.Close();
}
}
catch (Exception ex)
{
label1.Text = ex.Message;//显示信息
}
}
}

  首先电泳ShowDialog方法显示选择文件的对话框,如果用户进行选择并单击确认按钮,返回DialogResult.OK就从FileName属性中得到选择文件的路径。通过File类的静态方法Open打开文件,返回文件流

,在文件流基础上创建Image对象,显示在PictureBox控件中。

在保存Click事件中添加

 private void button2_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//准备写入文件
System.IO.FileStream StreamOut = null;
try
{
StreamOut = new System.IO.FileStream(saveFileDialog1.FileName, System.IO.FileMode.OpenOrCreate, System.
IO.FileAccess.Write, System.IO.FileShare.Read);
using (Bitmap bmp = new Bitmap(, ))
{
Graphics g = Graphics.FromImage(bmp);
//填充背景
g.Clear(Color.DarkBlue);
//填充圆形区域
g.FillEllipse(Brushes.Yellow, new Rectangle(, , bmp.Width, bmp.Height));
//释放对象
g.Dispose();
//将图像内容写入文件流
bmp.Save(StreamOut, System.Drawing.Imaging.ImageFormat.Png);
}
//显示保存成功
MessageBox.Show("图像文件保存成功。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
//释放文件流占用的资源
if (StreamOut != null)
{
StreamOut.Close();
StreamOut.Dispose();
}
}
}
}

c# 对话框控件的更多相关文章

  1. winform对话框控件、打印控件

    对话框控件: ColorDialog:颜色选择对话框,让用户自行选择一种颜色,使用方法类似FontDialog FontDialog:字体选择对话框,让用户自行选择一种字体(也可以选择字体颜色,需要在 ...

  2. 回调函数中使用MFC类的成员或对话框控件的简单方法

    在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量.类成员函数,亦或者对话框控件的句柄.由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制.. ...

  3. MFC编程入门之十(对话框:设置对话框控件的Tab顺序)

    前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为"计算"按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但 ...

  4. Winform容器标签 打印标签 对话框控件

    一.容器标签 布局: Anchor:锁定位置,指定与窗口容器的边缘位置,会随着窗口大小的改变而改变: Dock:填充窗口的位置.一般与容器标签同时使用. 1.Panel:对控件进行分组.可以独立布局, ...

  5. android 33 对话框控件

    对话框控件:最多3个按钮. mainActivity.java package com.sxt.day05_09; import android.app.Activity; import androi ...

  6. VS2010/MFC设置对话框控件的Tab顺序

    设置对话框控件的Tab顺序 前面几节为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法 ...

  7. WinForm 布局,容器、打印和对话框控件

    今天,我主要学习了容器控件.打印控件.对话框控件. 在正式进行今天的内容之前,首先补充了布局的两个属性:Anchor:锁定位置,Dock:填充位置,一般与容器控件配合使用. 之后,我学习了第一部分内容 ...

  8. 【2017-05-02】winform弹出警告框是否进行增删改操作、记事本制作、对话框控件和输出输入流

    一.winform弹出警告框是否进行增删改操作 第一个参数是弹出窗体显示的内容,第二个参数是标题,第三个参数是该弹窗包含确定和取消按钮. 返回的是一个枚举类接收一下. 再进行判断,如果点的是确定按钮, ...

  9. VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序)

    前面几节鸡啄米为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但是还有个遗留的 ...

  10. MFC中 自定义类访问主对话框控件的方法

    之前一直在找有木有好点的方法.现在终于被我找到,收藏之~~~~~~ 在使用mfc的时候经常遇到自定义类访问主对话框控件的问题,例如自定义类中的方法要输出一段字符串到主对话框的EDIT控件.控制对话框的 ...

随机推荐

  1. what's the 二叉树

    what's the 树 在了解二叉树之前,首先我们得有树的概念. 树是一种数据结构又可称为树状图,如文档的目录.HTML的文档树都是树结构,它是由n(n>=1)个有限节点组成一个具有层次关系的 ...

  2. 如何区分DDR1 DDR2 DDR3内存条

    DDR1,DDR2,DDR3内存条(DDR是Double Data Rate双倍速率同步动态随机存储器的英文缩写)就是俗称的一二三代内存条.这三种内存条工艺不同,接口不同,性能不同,互不兼容.要区分它 ...

  3. IDEA与Elicpse

    IDEA的项目 = Elicpse的工作区 Elicpse的项目 = IDEA的模块 修改信息提示 Alt+/ 关闭当前窗口 Ctrl+W

  4. 前端框架之Vue(4)-Class与Style绑定

    操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错.因此,在将  ...

  5. javascript篇-typeof,instanceof,constructor,toString判断数据类型的用法和区别

    javascript基本数据类型有:string,number,Boolean,undefined,null 引用类型(复杂类型):object, ES6中新增了一种数据类型:Symbol 以上数据类 ...

  6. 控制input框只能粘贴,不能输入

    .禁用文本框的onkeydown事件 <input type="text" onkeydown="return false"> .改造,可以使用ct ...

  7. PHP的类,abstract类,interface及关键字extends和implements

    原文:https://blog.csdn.net/qq_19557947/article/details/77880757?locationNum=4&fps=1 PHP类 PHP类是单继承, ...

  8. GatewayWorker 分布初试

    参考官网分布说明 http://doc2.workerman.net/326144 准备:两台内网服务器A1,A2 A1服务器写PHP脚本前端访问 <?php // 注意这里使用A2服务器的内网 ...

  9. su - 和su的区别

    su root和su - root: su只是切换了root身份,但Shell环境仍然是普通用户的Shell:而su -连用户和Shell环境一起切换成root身份了 推荐使用su - .

  10. MySql利用mysqldump导出/导入数据库表数据

    备份 在源主机上,先使用mysqldump命令备份,导出sql脚本文件 mysqldump -uroot -p tel_dev > /opt/tel_dev.sql 也可指定编码 mysqldu ...