1

Visual C# Express 2010 で C# アプリケーションを開発していますが、FolderBrowserDialog を開いたときに問題なく開かれ、フォルダー名とファイルを取得することもできました。

同じアプリケーション (コードを 1 行も変更していません) を Visual Studio 2010 Ultimate で開きました。アプリケーションのデバッグ中、問題は発生しませんでした。

しかし、アプリケーションを介してFolderBrowserDialogを開いている間(ラジオボタンをクリックしたとき)、アプリケーションはエラーなしで自動的に閉じられます(try-catch自体にコードがあります。例外も発生しません)。

アプリケーションを閉じる簡単なコードは次のとおりです。

DialogResult getFolderDialogResult = folderBrowserDialog1.ShowDialog();

上記にコメントしている間、アプリケーションは閉じていません。

注:folderBrowserDialogを呼び出す前にopenFileDialogを追加したところですが、うまく機能しています。

openFileDialog1.ShowDialog();
DialogResult getFolderDialogResult = folderBrowserDialog1.ShowDialog();

もう 1 つ注意: 新しいプロジェクトを作成し、FolderBrowserDialog を試しました。それは正常に動作しています:(

私のコード:

        try
        {
            MessageBox.Show("Select Folder Radio Button CLicked", "Radio Button", MessageBoxButtons.OK);
            string[] getFilesList = null;
            listBoxSelectSheetsMFR.DataSource = getFilesList;

            if (listBoxSelectSheetsMFR.Items.Count > 0)
            {
                listBoxSelectSheetsMFR.Items.Clear();
            }

            String tempString = "";
            ArrayList onlyFileNames = new ArrayList();
            String invalidFormat = "No";
            String folderPath = "";
            //Open Folder Selection Dialog
            DialogResult getFolderDialogResult = folderBrowserDialog1.ShowDialog();

            if (getFolderDialogResult == DialogResult.OK)
            {
                folderPath = folderBrowserDialog1.SelectedPath;
                MessageBox.Show(folderPath, "Folder Path", MessageBoxButtons.OK);

                //Get All Files
                getFilesList = Directory.GetFiles(folderPath);

                for (int i = 0; i < getFilesList.Length; i++)
                {
                    if (!Path.GetExtension(getFilesList[i].ToString()).Equals(".xls"))
                    {
                        invalidFormat = "Yes";
                    }
                }

                if (invalidFormat.Equals("No"))
                {
                    panelSelectSheetsMFR.Visible = true;

                    //Enable the ListBox and load the filenames
                    for (int i = 0; i < getFilesList.Length; i++)
                    {
                        tempString = getFilesList[i].ToString().Replace(folderPath + "\\", "");
                        onlyFileNames.Add(tempString.Replace(".xls", ""));
                    }

                    //Adding Items into ListBox
                    listBoxSelectSheetsMFR.DataSource = onlyFileNames;
                }
                else
                {
                    MessageBox.Show("One of file is having invalid Format. Please make sure all files \nshould be .xls format.", "Format Error", MessageBoxButtons.OK);
                }
            }
            MessageBox.Show(getFilesList.Length.ToString(), "# of Files", MessageBoxButtons.OK);
        }
        catch (Exception selectFolderExMsg)
        {
            MessageBox.Show(selectFolderExMsg.ToString(), "selectFolderRadioButtonFN", MessageBoxButtons.OK);
        }
4

0 に答える 0