我想点击确定按钮时进行一些验证。 例如,如果选择的文件夹是临时文件夹,当我单击“确定”按钮时,应显示错误消息,并且不应关闭“文件夹浏览器”对话框。 我该怎么办,这个功能可以实现。 你能举个例子吗?
答案 0 :(得分:2)
FolderBrowserDialog
不会像其他WinForms组件那样公开任何Validation
事件或OnValidate
方法。
FolderBrowserDialog
确实有OwnerWndProc
可以用来扩展对话框,但是我不鼓励它,因为它增加了不必要的复杂性。
我认为最好的选择是在发生验证错误时重新打开表单,如下所示:
Boolean isValid = false;
while( !isValid ) {
DialogResult result = fbd.ShowDialog(this);
if( result != DialogResult.OK ) return;
isValid = IsFolderValid( fbd.SelectedPath );
if( !isValid ) {
MessageBox.Show(this, "Selected folder is invalid, please select a different folder or click Cancel.");
}
}
答案 1 :(得分:1)
我建议您让FolderBorwserDialog
关闭,检查所选路径,如果它无效则显示错误消息,最后在关闭错误消息后再次显示文件对话框。这可以在while循环中完成,例如:
FolderBrowserDialog fbd = new FolderBrowserDialog();
while (true)
{
if (fbd.ShowDialog() == DialogResult.OK)
{
if (Valid(fbd.SelectedPath))
break;
else
MessageBox.Show("Something");
}
else
break;
}