在我的程序中,我需要强制用户选择保存文件夹。我通过将 SelectedPath 设置为 MyComputer 来做到这一点。
我的问题是 OK 按钮最初没有被禁用。
行为:
- 选择了“我的电脑”(浅灰色),但启用了“确定”按钮。
- 单击“我的电脑”(现在选择深蓝色阴影)仍然选择了“确定”按钮。
- 如果我选择说桌面,然后重新选择“我的电脑”,那么“确定”按钮才会被禁用。
我尝试过使用 SelectedPath 和 RootFolder,以及 Environment.SpecialFolder.MyComputer 和 Environment.GetPath() 均无济于事。
当 SelectedPath 不是有效文件夹时,如何禁用 OK 按钮?
编辑: 这是在 Visual Studio 2010 Professional 中开发的 Windows XP、.Net 4.0 上运行的。
编辑#2:添加了完整的示例代码。
using System;
using System.Windows.Forms;
using System;
using System.Windows.Forms;
namespace FolderBrowser
{
public class Form1 : Form
{
private System.ComponentModel.IContainer components;
private System.Windows.Forms.Button button1;
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
this.button1.Location = new System.Drawing.Point(10, 10);
this.button1.Text = "Open FolderBrowserDialog";
this.button1.Click += new System.EventHandler(this.SelectSaveFolderItem_Click);
this.Controls.Add(this.button1);
this.ResumeLayout(false);
}
public Form1()
{
InitializeComponent();
}
private void SelectSaveFolderItem_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.SelectedPath = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}";
fbd.ShowDialog();
}
}