程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WinForm 對話框,流,winform對話框

WinForm 對話框,流,winform對話框

編輯:關於.NET

WinForm 對話框,流,winform對話框


 

        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();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved