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