C#フォルダ選択ボックスの使用(C#フォルダを選択、C#フォルダを開く、C#フォルダを参照、C#フォルダを選択する方法)


今日レポートの統計をする時、レポートを指定の位置に生成することに出会って、ネット上でいくつかの資料を探して、整理して、分かち合います.
  1.C#でFolderBrowserDialogクラスを使用すると、フォルダを選択する機能を実現し、選択したフォルダパスを記録することができます.
  (1).まずネーミングスペースSystemを導入する.Windows.Forms;  
  (2).次に、アプリケーションのメインエントリポイント、すなわちstatic void Main()メソッドに[STAThread]プロパティを追加します.
        /// <summary>
        ////// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

  (3).次に、イベントトリガを定義します.
  
        private void button1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dilog = new FolderBrowserDialog();
            dilog.Description = " ";
            if(dilog.ShowDialog() == DialogResult.OK || dilog.ShowDialog() == DialogResult.Yes)
            {
                path=dilog.SelectedPath;
            }
        }

  (4).さっき選択したフォルダを開きます.
        private void button2_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(path))
            {
                System.Diagnostics.Process.Start("Explorer.exe", path);
            }
            else
            {
                MessageBox.Show(" ");
            }
        }

以上で、フォルダを選択する機能が完了する.
  2.プログラムのエントリポイントで[STAThread]属性を追加する必要があることに注意してください.もちろんこの属性を追加しなくてもいいですが、別のスレッドを開いて処理する必要があります.コードは次のとおりです.
        private void button1_Click(object sender, EventArgs e)
        {
            Thread newThread = new Thread(new ThreadStart(TEST));
            newThread.SetApartmentState(ApartmentState.STA);
            newThread.Start();
            // 
            //Thread app = new Thread(new ParameterizedThreadStart(TEST));// TEST , 
            //app.ApartmentState = ApartmentState.STA;
            //app.Start();

        }

        private void TEST(object obj)
        {
            FolderBrowserDialog dilog = new FolderBrowserDialog();
            dilog.Description = " ";
            if(dilog.ShowDialog() == DialogResult.OK)
            {
                path=dilog.SelectedPath;
            }

        }
        private void TEST()
        {
            FolderBrowserDialog dilog = new FolderBrowserDialog();
            dilog.Description = " ";
            if (dilog.ShowDialog() == DialogResult.OK)
            {
                path = dilog.SelectedPath;
            }
        }

 
フォルダのDemoはここをクリックしてダウンロードします。を選択