private void button1_Click(object sender, EventArgs e)
{
//显示颜色选择器
colorDialog1.ShowDialog(); //把取到的颜色赋值给panel
panel1.BackColor = colorDialog1.Color; }

FontDialog:字体样式选择控件

        private void button3_Click(object sender, EventArgs e)
{
//显示字体样式选择器
fontDialog1.ShowDialog(); //取值
label2.Font = fontDialog1.Font;
}

FolderBrowserDialog:文件夹选择控件

        private void button2_Click(object sender, EventArgs e)
{
//显示文件夹选择器
folderBrowserDialog1.ShowDialog(); //取文件路径
label1.Text = folderBrowserDialog1.SelectedPath;
}

openFileDialog:文件选择控件
※限制打开的文件后缀:Filter = 文本文件|*.txt|所有文件|*.*;
一个显示一个后缀是一组,添加另一组需要继续使用'|'

        private void button4_Click(object sender, EventArgs e)
{
//设置能够打开什么类型的文件
openFileDialog1.Filter = "文本文件|*.txt|所有文件|*.*"; //显示 DialogResult:获取或设置窗体的对话框结果
DialogResult dr = openFileDialog1.ShowDialog(); //取值
if (dr == DialogResult.OK)//为了防止用户不选择
{
label3.Text = openFileDialog1.FileName;
}
}

saveFileDialog:保存路径选择控件

※选择已有的文件会覆盖

        private void button5_Click(object sender, EventArgs e)
{
//显示
DialogResult dr = saveFileDialog1.ShowDialog(); //取值
if (dr == DialogResult.OK)
{
label4.Text = saveFileDialog1.FileName;
} }

二、流 文件操作

流:(I/O)输入输出流

     分类:文件流,内存流,网络流

     流的操作一般要放在try catch里面,操作文件网络容易出现异常

命名空间:using system .IO;
        using system .Text; //二进制转换需要的命名空间

(一)类:FileStream:文件流

1.构造:一般用第三个和第六个重载

FileStream stream = new FileStream("d:\\test.txt"(路径),FileMode.Creat(打开模式),FileAccess.Read(只读));

                   ※写路径的时候前面加@"d:\test.txt",或者写双斜杠

  第二个参数 枚举类型
  CreateNew    指定操作系统应创建新文件,如果文件存在则引发异常。
  Create      指定操作系统创建新文件,如果文件已存在则覆盖之。
  OPen        指定 操作系统应打开现有文件,如果文件不存在则抛出异常。
  OpenOrCreate 指定操作系统应打开文件,如果文件不存在则创建之。
  Truncate    指定操作系统打开现有文件,如果文件已存在则清空,从Truncate打开的文件中读取将引发异常。
  Append      若文件存在,则找到文件并找到文件结尾,或者创建一个新文件。
 
  第三个参数 确定访问文件的方式 默认可读可写
  Read        只读 对文件的读访问,拥有读取权限。
  Write      只写 对文件的写访问,拥有写入权限。
  ReadWrite      可读可写 对文件的读访问和写访问,拥有读取和写入两个权限。 

2.属性:

Length  :流的长度
Position:流的当前位置,探测光标的当前位置

3.方法:

  Write(byte[]流的内容,int从第几个位置写,int写入长度);
     参数,第一个二进制数组,第二个从哪个位置开始写一般从0开始,第三个写进去多长(一般用Length,需要强转为int)。
  Read(byte[]存放读出流的空间,int从第几个位置读,int读多长);读文件
  seek(int偏移量,SeekOrigin.Begin(从哪计算偏移量))调整流的当前位置,seek(0,seekOrigin.End),将光标移到末尾
  Flush();清除缓存
  Close();关闭流

4.用法:

读文件内容:

        private void button1_Click(object sender, EventArgs e)
{
//显示工具
DialogResult dr = openFileDialog1.ShowDialog(); //取值
if (dr == DialogResult.OK)
{
//文件路径
string path = openFileDialog1.FileName; //造文件流
FileStream fs = new FileStream(path,FileMode.Open); //造一个二进制数组,用来存储读到的数据
byte[] sj = new byte[fs.Length]; //将文件读取为二进制数据,放到二进制数组里面
fs.Read(sj,0,sj.Length); //将二进制数据转为字符串 Encoding格式转换 Default自动获取当前程序的编码方式 Getstring返回字符串
richTextBox1.Text = Encoding.Default.GetString(sj); //关闭流
fs.Close();
} }

写文件:把写的内容存入

        private void button2_Click(object sender, EventArgs e)
{
//显示选择文件对话框
DialogResult dr = saveFileDialog1.ShowDialog(); //取路径
if (dr == DialogResult.OK)
{
//文件路径
string path = saveFileDialog1.FileName; //取出文本框中的内容
string nr = richTextBox1.Text; //将字符串转为二进制数组
byte[] sj = Encoding.Default.GetBytes(nr); //造一个文件流
FileStream fs = new FileStream(path,FileMode.Create); //向文件里面写数据
fs.Write(sj,0,sj.Length); //关闭流
fs.Close();
}
}

(二)StreamWrite类:只能写

        private void button3_Click(object sender, EventArgs e)
{
//显示选择文件对话框
DialogResult dr = saveFileDialog1.ShowDialog(); //取路径
if (dr == DialogResult.OK)
{
//文件路径
string path = saveFileDialog1.FileName; //取出文本框中的内容
string nr = richTextBox1.Text;//造一个文件流
FileStream fs = new FileStream(path, FileMode.Create); //造一个StreamWrite对象
StreamWriter sw = new StreamWriter(fs, Encoding.Default); //写入文件
sw.Write(nr); //关闭
sw.Close();
fs.Close();
}
}

第一种方式,使用流
StreamWriter sw = new StreamWriter(fs,Encoding.Default);
第二种方式,不使用流 第二个参数是是否追加内容
StreamWriter sw = new StreamWriter(path,true,Encoding.Default);

(三)StreamRead类:只能读

//取文件路径
string path = saveFileDialog1.FileName;

//打开文件流
FileStream fs = new FileStream(path,FileMode.Create,FileAccess.Write);

//第一种方式,使用流
StreamReader sr = new StreamReader(fs,Encoding.Default);

//第二种方式,不适用流
//StreamReader sr = new StreamReader(path,Encoding.Default);

//读一行
richTextBox1.Text = sr.ReadLine();

//读所有
richTextBox1.Text = sr.ReadToEnd();

//关闭
sr.Close();

WinForm 对话框,流的更多相关文章

  1. WinForm对话框

    WinForm 对话框控件colorDialog - 颜色选择对话框 使用代码如下: private void 字体颜色ToolStripMenuItem_Click(object sender, E ...

  2. winform 对话框、打印框

    winform 对话框控件 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorD ...

  3. C#窗体 WinForm 对话框,流

    一.对话框 ColorDialog:颜色选择控件 private void button1_Click(object sender, EventArgs e) { //显示颜色选择器 colorDia ...

  4. winform —— 对话框和流及打印

    对话框:  注意引用using System.IO; showdialog();显示对话框,返回一个dialogresult的枚举类型 colorDialog:color属性,用来获取颜色 folde ...

  5. WinForm 对话框、流

    一.对话框 ColorDialog:颜色选择控件 private void button1_Click(object sender, EventArgs e) { //显示颜色选择器 colorDia ...

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

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

  7. winform 对话框,保存,另存为,还有打印控件

    学习的对话框的种类: 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorDial ...

  8. winform对话框控件

    (1)ColorDialog     用户自定义颜色控件 点击颜色按键,改变richTextBox1中字体的颜色 private void button1_Click(object sender, E ...

  9. winform 对话框控件,打印控件

    1.文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话框(SaveFileDialog) 2.字体对话框(FontDialog) 3.颜 ...

随机推荐

  1. 浅谈 ZipArchive 类

    Microsoft .NET Framework 4.5 新增了 ZipArchive 类 Microsoft Windows 8 Consumer Preview 操作系统已经内置了 Microso ...

  2. struts2的(S2-045,CVE-2017-5638)漏洞测试笔记

    网站用的是struts2 的2.5.0版本 测试时参考的网站是http://www.myhack58.com/Article/html/3/62/2017/84026.htm 主要步骤就是用Burp ...

  3. Mac配置环境变量(Java,Android,Gradle,Nodejs,MongoDB,Maven,Hosts)

    JAVA_HOME 配置环境变量 # 使用vim打开.bash_profile文件.加入java环境变量 $ vim .bash_profile export JAVA_HOME=$(/usr/lib ...

  4. Spring简单实现数据源的动态切换

    Spring简单实现数据源的动态切换: 1. 创建一个数据源切换类: 2. 继承AbstractRoutingDataSource,创建多数据源路由类,并注入到spring的配置文件中: 3. AOP ...

  5. HubbleDotNet 开源全文搜索数据库项目--为数据库现有表或视图建立全文索引(三) 多表关联全文索引模式

    关系型数据库中,多表关联是很常见的事情,HubbleDotNet 可以对部分情况的多表关联形式建立关联的全文索引,这样用户就不需要专门建一个大表 来解决多表关联时的全文索引问题. 下面以 为数据库现有 ...

  6. yii2.0 ActiveRecord 查询汇总

    User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User::find()->w ...

  7. [HNOI 2007] 紧急疏散

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1189 [算法] 首先 , 答案具有单调性 , 不妨二分答案” 第mid秒是否可以完成 ...

  8. [转]python的startswith()方法

    描述 Python startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False.如果参数 beg 和 end 指定值,则在指定范围内检查. 语法 ...

  9. 字节流与字符流简单操作(OutputStream、InputStream、Writer、Reader)

    操作流程 使用File类打开一个文件 通过字节流或者字符流的子类.指定输出的位置. 进行读/写操作 关闭输入/出 字节流与字符流 在java.io包中操作文件内容主要有两大类:字节流字符流.两大类分为 ...

  10. Tomcat闪退的解决办法

    1 首先考虑的是端口占用 2 现在讲的是这一种方法 (1)找到解压缩的文件的bin目录 找到startup.bat 记事本打开 开头加上两句话 SET JAVA_HOME=C:\Program Fil ...