当FolderBrowserDialog出现时,我按下“关闭”按钮或“取消”按钮,它将显示一条错误消息。我该怎么办?
谢谢。
这是我的密码。
private void openSlideShowFolder_Click(object sender, EventArgs e)
{
folderBrowserDialog1.ShowDialog();
string[] pics1 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.jpg");
string[] pics2 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.jpeg");
string[] pics3 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.bmp");
folderFile = new string[pics1.Length + pics2.Length + pics3.Length];
Array.Copy(pics1, 0, folderFile, 0, pics1.Length);
Array.Copy(pics2, 0, folderFile, pics1.Length, pics2.Length);
Array.Copy(pics3, 0, folderFile, pics1.Length + pics2.Length, pics3.Length);
selected = 0;
showImage(folderFile[selected]);
}发布于 2013-12-12 07:14:37
如前所述,您需要捕捉对话框是否返回OK。看看这是否有帮助:
private void openSlideShowFolder_Click(object sender, EventArgs e)
{
if(folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
string[] pics1 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.jpg");
string[] pics2 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.jpeg");
string[] pics3 = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.bmp");
folderFile = new string[pics1.Length + pics2.Length + pics3.Length];
Array.Copy(pics1, 0, folderFile, 0, pics1.Length);
Array.Copy(pics2, 0, folderFile, pics1.Length, pics2.Length);
Array.Copy(pics3, 0, folderFile, pics1.Length + pics2.Length, pics3.Length);
selected = 0;
showImage(folderFile[selected]);
}
}发布于 2013-12-12 07:13:42
ShowDialog的文档显示它给出了一个结果,告诉您用户是否单击OK。您的代码假设用户总是单击OK,不管结果如何,它都在继续。您需要检查返回值,并且只在它是DialogResult.OK时才继续。
如果即使用户单击“取消”或“关闭”,但仍将继续操作,则其他一些假设可能始终有效,但可能不成立。特别是,没有用户选择的路径,因为用户没有选择任何内容。
https://stackoverflow.com/questions/20537017
复制相似问题