protected override void Execute(CodeActivityContext context) { var shownewfolderbutton = ShowNewFolderButton.Get(context); var rootfolder = RootFolder.Get(context); var folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); folderBrowserDialog.ShowNewFolderButton = shownewfolderbutton; if (string.IsNullOrEmpty(rootfolder)) { rootfolder = Environment.SpecialFolder.Desktop.ToString(); } Enum.TryParse(rootfolder, out Environment.SpecialFolder specialfolder); folderBrowserDialog.RootFolder = specialfolder; System.Windows.Forms.DialogResult result = System.Windows.Forms.DialogResult.Cancel; GenericTools.RunUI(() => { result = folderBrowserDialog.ShowDialog(); }); if (result != System.Windows.Forms.DialogResult.OK) { context.SetValue(Folder, null); return; } context.SetValue(Folder, folderBrowserDialog.SelectedPath); }