我目前在我的CDocManagerEx类中使用CFolderDialog类来处理文件操作,如下所示:
替代文字http://img268.yfrog.com/img268/9271/filedialog.png
我不知道是否需要显示此类的方法实现(我是从此处发布的项目中找到的),但是如果有帮助,请参见以下类定义:
class CFolderDialog
{
friend static int CALLBACK BrowseDirectoryCallback(
HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData);
public:
CFolderDialog( LPCTSTR lpszFolderName = NULL,
DWORD dwFlags = NULL/*BIF_RETURNONLYFSDIRS*/,
CWnd* pParentWnd = NULL);
virtual ~CFolderDialog();
virtual int DoModal();
CString GetPathName() const;
protected:
virtual void OnInitDialog();
virtual void OnSelChanged(ITEMIDLIST* pIdl);
virtual void CallbackFunction(HWND hWnd, UINT uMsg, LPARAM lParam);
void EnableOK(BOOL bEnable = TRUE);
void SetSelection(LPCTSTR pszSelection);
void SetSelection(ITEMIDLIST* pIdl);
void SetStatusText(LPCTSTR pszStatusText);
CString ShortName(const CString& strName);
public: …Run Code Online (Sandbox Code Playgroud) 如何在Perl中打开文件夹选择对话框?
通常,我SHBrowseForFolder用来支持浏览文件夹...但我想支持Windows和OSX.
我在看:
System.IOUtils 但没有找到任何相关功能(也许,我错过了一个?)TOpenDialog 选项,但没有找到一个选择文件夹而不是文件...任何的想法?(我可以管理ifdefWindows,但我对Mac部分没有任何线索...)
干杯,
W.
我有对话框表单的问题.下面是一段调用FolderBrowserDialog窗口的C#代码.现在,当我在文件夹上单击"确定"时,它将关闭对话框,因此不必太在意这一点.但有谁知道如何检测取消事件?我试过查找它,但我似乎能找到的只是"解雇".不确定这可以帮助我.
private void link1add_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.ShowDialog(); // Opens Folderdialog
}
Run Code Online (Sandbox Code Playgroud)
例如,沿着这些方向的东西:
private void link1add_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.ShowDialog(); // Opens Folderdialog
if (dialog == dialog.Cancel)
{
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人能对此有所了解,我会非常感激.谢谢你的期待.
我想使用WPF的文件夹浏览对话框,但似乎没有这样一个必不可少的类WPF.
有人建议使用,System.Windows.Forms.FolderBrowserDialog但这是一个非常糟糕的对话.
我试过Ookii.Dialogs.Wpf.VistaFolderBrowserDialog:
Ookii.Dialogs.Wpf.VistaFolderBrowserDialog dlg = new VistaFolderBrowserDialog();
dlg.SelectedPath = path;
dlg.ShowDialog();
Run Code Online (Sandbox Code Playgroud)
但是SelectedPath当对话框打开时,设置不会设置开始文件夹,这对我的程序至关重要.
如何VistaFolderBrowserDialog在正确的文件夹中打开?
我目前正在WPF中编写一个文件夹浏览器对话框.为了显示树我使用TreeView:
<TreeView Name="FolderView" ItemsSource="{Binding DataTrees}" Grid.Row="0">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Tree}">
<TreeViewItem IsSelected="{Binding IsSelected, Mode=TwoWay}" IsExpanded="{Binding IsExpanded, Mode=TwoWay}" Header="{Binding Name}" HorizontalAlignment="Left"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Run Code Online (Sandbox Code Playgroud)
目前我有三个问题:
我不知道问题在哪里,所以请评论,我会更新我的问题!
编辑:Itemsource是一个列表数据树类:
public class DataTree:INotifyPropertyChanged
{
private string path;
private string name;
private ObservableCollection<DataTree> tree;
private bool isSelected;
private bool isExpanded;
}
Run Code Online (Sandbox Code Playgroud)
(简单的代码 - 没有Propertys和INotifyPropertyChanged的实现)
如何设置folderdialog的根文件夹?
我的样本似乎不起作用.(我检查过该文件夹是否存在)
Dim FolderBrowserDialog1 As New FolderBrowserDialog
FolderBrowserDialog1.RootFolder = "C:\VaultWorkspace\cadcampc\"
If (FolderBrowserDialog1.ShowDialog() = DialogResult.OK) Then
Copy_Design_New_Loc.Text = FolderBrowserDialog1.SelectedPath
End If
Run Code Online (Sandbox Code Playgroud)
错误信息
An unhandled exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll
Additional information: Conversion from string "C:\VaultWorkspace\cadcampc\" to type 'Integer' is not valid.
Run Code Online (Sandbox Code Playgroud)
如何将自定义位置设置为rootfolder,我需要做什么?
我正在尝试完成我的静态Prompt类,以便能够从任何地方调用它.但问题是无法进行对话显示.我已经在使用[STAThread],这是我的代码.
public static string ShowFileDialog()
{
string selectedPath = "";
var t = new Thread((ThreadStart)(() =>
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.RootFolder = System.Environment.SpecialFolder.MyComputer;
fbd.ShowNewFolderButton = true;
if (fbd.ShowDialog() == DialogResult.OK)
{
selectedPath = fbd.SelectedPath;
}
}));
t.SetApartmentState(ApartmentState.STA);
t.Start();
t.Join();
return selectedPath;
}
Run Code Online (Sandbox Code Playgroud)
public static class Prompt是我的提示班.我是从public partial class Dashboard : Form课堂上打电话来的
谢谢你的帮助.
无法让 wpf 项目重新识别FolderBrowserDialog
using System.Windows.Forms.Integration;
using System.Windows.Forms;
private void Button_Click_1(object sender, RoutedEventArgs e)
{
FolderBrowserDialog browse = new FolderBrowserDialog();
}
Run Code Online (Sandbox Code Playgroud)
无法找到类型或名称空间FolderBrowserDialog???
我有一个使用folderBrowserDialog 的应用程序。在 Windows XP 中它工作正常,但在 Win 2012 对话框中不显示网络驱动器。我试图找到解决方案,但失败了。也许有人遇到过同样的问题。任何帮助,将不胜感激)
在我的应用程序同时使用OpenFileDialog和FolderBrowserDialog按钮单击处理程序:
var fileDialog = new System.Windows.Forms.OpenFileDialog();
var folderDialog = new System.Windows.Forms.FolderBrowserDialog();
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当调用OpenFileDialog它从上次选择文件的文件夹中的资源管理器中启动时.但FolderBrowserDialog无论上次选择哪个文件夹,每次都在浏览器中打开MyComputer.如何为"FolderBrowserDialog"获得相同的行为(记住上次选择的文件夹)?
'OpenFileDialog'存储最后选择文件的文件夹也很有趣?Windows是否为每个应用程序存储它?
出于好奇,我想知道为什么我不能显示的两个不同的实例FolderBrowserDialog中一个接一个的构造之后Window,但在做Window的Loaded事件.
fbd1),并且没有显示出下一个.例1:
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
using (var fbd1 = new FolderBrowserDialog()) {
fbd1.ShowDialog();
}
using (var fbd2 = new FolderBrowserDialog()) {
fbd2.ShowDialog();
}
}
}
Run Code Online (Sandbox Code Playgroud)
例2:
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e) {
using (var fbd1 = new FolderBrowserDialog()) {
fbd1.ShowDialog();
}
using (var …Run Code Online (Sandbox Code Playgroud)