亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#開(kāi)發(fā)Winform控件之打開(kāi)文件對(duì)話框OpenFileDialog類

 更新時(shí)間:2022年02月25日 17:06:35   作者:.NET開(kāi)發(fā)菜鳥(niǎo)  
這篇文章介紹了C#開(kāi)發(fā)Winform控件之打開(kāi)文件對(duì)話框OpenFileDialog類,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

OpenFileDialog類提供了用戶打開(kāi)文件的功能,它有如下屬性:

屬性

  • InitialDirectory:設(shè)置對(duì)話框的初始目錄。
  • Filter: 要在對(duì)話框中顯示的文件篩選器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"。
  • FilterIndex: 在對(duì)話框中選擇的文件篩選器的索引,如果選第一項(xiàng)就設(shè)為1。
  • RestoreDirectory: 控制對(duì)話框在關(guān)閉之前是否恢復(fù)當(dāng)前目錄。
  • FileName:第一個(gè)在對(duì)話框中顯示的文件或最后一個(gè)選取的文件。
  • Title:將顯示在對(duì)話框標(biāo)題欄中的名稱。
  • Multiselect:設(shè)置打開(kāi)對(duì)話框可以多選。

1、新建一個(gè)Winform窗體應(yīng)用程序,命名為:OpenFileDialogDemo

2、在界面上添加一個(gè)按鈕的控件(用于打開(kāi)文件的窗口),添加日志輸出的文本控件(輸出最終用戶打開(kāi)的文件的目錄、文件名稱和文件內(nèi)容)。

3、后臺(tái)代碼實(shí)現(xiàn):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace OpenFileDialogDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 打開(kāi)文件按鈕單擊事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_OpenFile_Click(object sender, EventArgs e)
        {
            //定義一個(gè)文件打開(kāi)控件
            OpenFileDialog ofd = new OpenFileDialog();
            //設(shè)置打開(kāi)對(duì)話框的初始目錄,默認(rèn)目錄為exe運(yùn)行文件所在的路徑
            ofd.InitialDirectory = Application.StartupPath;
            //設(shè)置打開(kāi)對(duì)話框的標(biāo)題
            ofd.Title = "請(qǐng)選擇要打開(kāi)的文件";
            //設(shè)置打開(kāi)對(duì)話框可以多選
            ofd.Multiselect = true;
            //設(shè)置對(duì)話框打開(kāi)的文件類型
            ofd.Filter = "文本文件|*.txt|音頻文件|*.wav|圖片文件|*.jpg|所有文件|*.*";
            //設(shè)置文件對(duì)話框當(dāng)前選定的篩選器的索引
            ofd.FilterIndex = 2;
            //設(shè)置對(duì)話框是否記憶之前打開(kāi)的目錄
            ofd.RestoreDirectory = true;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                //獲取用戶選擇的文件完整路徑
                string filePath = ofd.FileName;
                //獲取對(duì)話框中所選文件的文件名和擴(kuò)展名,文件名不包括路徑
                string fileName = ofd.SafeFileName;
                OutLog("用戶選擇的文件目錄為:" + filePath);

                OutLog("用戶選擇的文件名稱為:"+fileName);
                OutLog("**************選中文件的內(nèi)容**************");
                using (FileStream fsRead = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Read))
                {
                  //定義二進(jìn)制數(shù)組
                    byte[] buffer = new byte[1024 * 1024 * 5];
                    //從流中讀取字節(jié)
                    int r= fsRead.Read(buffer, 0, buffer.Length);
                    OutLog(Encoding.Default.GetString(buffer,0,r));
                }
            }
        }

        /// <summary>
        /// 輸出日志
        /// </summary>
        /// <param name="strLog"></param>
        private void OutLog(string strLog)
        {
            //如果日志信息長(zhǎng)度超過(guò)1000行,則自動(dòng)清空
            if (txt_FileInfo.GetLineFromCharIndex(txt_FileInfo.Text.Length) > 1000)
            {
                //清空文本
                txt_FileInfo.Clear();
            }
            txt_FileInfo.AppendText(DateTime.Now.ToString("HH:mm:ss ")+strLog+"\r\n");
        }
    }
}

4、生成exe文件測(cè)試

5、點(diǎn)擊打開(kāi)文件按鈕,打開(kāi)對(duì)話框。默認(rèn)的目錄是exe文件所在的目錄:

6、在打開(kāi)文件的類型中是我們?cè)O(shè)置的4和類型,默認(rèn)選中的是第2個(gè)音頻文件類型:

7、選中要打開(kāi)的文件后,程序運(yùn)行效果:

到此這篇關(guān)于C#開(kāi)發(fā)Winform控件之打開(kāi)文件對(duì)話框OpenFileDialog類的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#實(shí)現(xiàn)不同窗體之間傳遞參數(shù)

    C#實(shí)現(xiàn)不同窗體之間傳遞參數(shù)

    這篇文章主要介紹了C#實(shí)現(xiàn)不同窗體之間傳遞參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • WPF調(diào)用Matlab函數(shù)的方法

    WPF調(diào)用Matlab函數(shù)的方法

    這篇文章主要為大家詳細(xì)介紹了WPF調(diào)用Matlab函數(shù)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • C#中#define后面只加一個(gè)參數(shù)的解釋

    C#中#define后面只加一個(gè)參數(shù)的解釋

    今天小編就為大家分享一篇關(guān)于C#中#define后面只加一個(gè)參數(shù)的解釋,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • C# GDI+實(shí)現(xiàn)時(shí)鐘表盤(pán)

    C# GDI+實(shí)現(xiàn)時(shí)鐘表盤(pán)

    這篇文章主要為大家詳細(xì)介紹了C# GDI+實(shí)現(xiàn)時(shí)鐘表盤(pán),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • c#多線程之間的排他鎖的實(shí)現(xiàn)

    c#多線程之間的排他鎖的實(shí)現(xiàn)

    我們很多時(shí)候會(huì)碰到這樣的問(wèn)題,使用多線程刷一個(gè)表的數(shù)據(jù)時(shí)需要多個(gè)線程不能重復(fù)提取數(shù)據(jù),那么這個(gè)時(shí)候就需要使用到線程的排他鎖了,本文就詳細(xì)的介紹一下
    2021-08-08
  • c#中多線程訪問(wèn)winform控件的若干問(wèn)題小結(jié)

    c#中多線程訪問(wèn)winform控件的若干問(wèn)題小結(jié)

    大部分情況下都會(huì)碰到使用多線程控制界面上控件信息的問(wèn)題。然而我們并不能用傳統(tǒng)方法來(lái)解決這個(gè)問(wèn)題,下面我將詳細(xì)的介紹
    2013-10-10
  • C#實(shí)現(xiàn)對(duì)文件進(jìn)行加密解密的方法

    C#實(shí)現(xiàn)對(duì)文件進(jìn)行加密解密的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)對(duì)文件進(jìn)行加密解密的方法,涉及C#加密與解密的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#實(shí)現(xiàn)Socket通信的解決方法

    C#實(shí)現(xiàn)Socket通信的解決方法

    這篇文章主要介紹了C#實(shí)現(xiàn)Socket通信的解決方法,需要的朋友可以參考下
    2014-07-07
  • C#實(shí)現(xiàn)計(jì)算年齡的簡(jiǎn)單方法匯總

    C#實(shí)現(xiàn)計(jì)算年齡的簡(jiǎn)單方法匯總

    本文給大家分享的是C#代碼實(shí)現(xiàn)的簡(jiǎn)單實(shí)用的給出用戶的出生日期,計(jì)算出用戶的年齡的代碼,另外附上其他網(wǎng)友的方法,算是對(duì)計(jì)算年齡的一次小結(jié),希望大家能夠喜歡。
    2015-05-05
  • c# 類成員初始化順序的特殊情況

    c# 類成員初始化順序的特殊情況

    這篇文章主要介紹了c# 類成員初始化順序的特殊情況,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06

最新評(píng)論