我发布了 - 如何使用OpenFileDialog选择文件夹?,我找不到正确的答案.所以,我改变了我的问题.
我想自定义OpenFileDialog以选择多个文件夹和文件.我试图找到一个解决方案,可以看到一些关于它的帖子.
从互联网上,我找到了以下项目 - https://github.com/scottwis/OpenFileOrFolderDialog.
然而,在使用它时,我遇到了一个问题.它使用MFC中的GetOpenFileName函数和OPENFILENAME结构.和OPENFILENAME有一个名为"成员templateID ".它是对话框模板的标识符.并且示例项目具有" res1.rc "文件,并且还具有模板化对话框.
但我不知道如何将此文件附加到我的C#项目中?
还是有任何其他完美的解决方案 - " 如何自定义OpenFileDialog以选择多个文件夹和文件? "?
我正在学习如何使用Excel宏,我发现这个代码:
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.Title = "Please select the file to kill his non colored cells"
.Filters.Add "Excel", "*.xls"
.Filters.Add "All", "*.*"
If .Show = True Then
txtFileName = .SelectedItems(1)
End If
End With
Run Code Online (Sandbox Code Playgroud)
此代码打开FileDialog.如何在不重写先前打开的情况下打开所选的Excel文件?
我搜索函数类似的东西OpenFileDialog,.NET但在上win32,我在msdn上找不到这个名字的这个函数,我记得这个函数存在.
谁有人能给我起名字?
问候,
我的应用程序有一个"打开文件"按钮.在启动OpenFileDialog之前,它会询问用户是否要保存当前文件,如果是,则启动SaveFileDialog.然后它启动OpenFileDialog.很标准的东西.
我的问题是Silverlight然后看到OpenFileDialog.ShowDialog()方法不是用户启动的,我得到一个SecurityException.
是否有任何已知的合理方法可以避免此异常?当然这是一个非常标准的场景?
该应用程序位于浏览器中.
欢迎任何想法
编辑:
对不起,不允许发布实际代码:(逻辑非常简单:在伪造的代码中,'OpenFile'按钮按下事件调用一个方法,如:
*发出新的SL消息,询问是否先保存.
*在消息窗口中是/否单击: - 如果否,转到加载 - 如果是,则启动SaveFileDialog.ShowDialog(),转到加载
*加载:启动打开文件对话框
编辑2:迷你程序......
主页的XML内容:
<Grid x:Name="LayoutRoot" Background="White">
<Button Content="Open" Click="Button_Click"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
码:
using System.Windows;
using System.Windows.Controls;
namespace SilverlightApplication15
{
public partial class MainPage : UserControl
{
AskWindow aw = new AskWindow();
public MainPage()
{
InitializeComponent();
aw.Closed += new System.EventHandler(aw_Closed);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
aw.Show();
}
private void aw_Closed(object sender, System.EventArgs e)
{
if (aw.DialogResult == true)
{
SaveFileDialog svd = new SaveFileDialog();
svd.ShowDialog();
} …Run Code Online (Sandbox Code Playgroud) 我已经制作了一个在Win7-PC上运行的小应用程序.它所做的就是在凌晨1点检查网络驱动器的内容(并将其与本地硬盘驱动器上的文件夹进行比较),如果存在差异,请将差异复制到此文件夹.
问题是,有时它找不到网络驱动器.
当应用程序启动时,使用应用程序上的按钮找到网络驱动器,该按钮启动OpenFileDialog,并将生成的驱动器号放入按钮旁边的文本框中.从那时起它应该自己运行.PC永远不会关闭.
当它说无法找到网络驱动器时,我可以手动按下同一个应用程序上的按钮,在OpenFileDialog中选择驱动器(驱动器号永远不会改变),应用程序将在几天内运行完美.然后问题又出现了.
问题是:为什么可以通过我的应用程序上的OpenFileDialog访问网络驱动器,但我的应用程序不能?
我的应用程序使用此函数(使用"Y:\"调用)启动复制过程以确定驱动器是否存在:
public bool fn_drive_exists(string par_string)
{
DirectoryInfo di_dir = new DirectoryInfo(par_string);
if (di_dir.Exists)
{
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
...有时它会返回一个False,直到我使用OpenFileDialog"唤醒它".
OpenFileDialog做了什么,我的应用程序没有?
我希望通过自OpenFileDialog定义WinForms和WPF控件自定义Vista .我知道你可以模拟类似XP的OpenFileDialog,但看起来很丑陋并且不能满足我的要求.我知道您可以OpenFileDialog使用Ookii对话框或Microsoft的API代码包自定义.这种方法的问题是,他们不允许自定义控件,只有控制(有限的子集Label,TextBox等等).
我得到的最接近的是下面的图像.使用API代码包的组合,对Shell的一些更改,为空格添加空标签的黑客工作,以及一堆丑陋的COM直接在OpenFileDialog上绘制控件我能够接近.
这种方法的问题是我必须在WndProc中禁用重新调整大小,因为它的控件部分CommonOpenFileDialog有一个flow/wrap布局,你不能动态添加/删除重新调整大小的控件,否则你会遇到灾难性的失败OpenFileDialog已经显示出来了.
是否有任何建议超出我的尝试或任何第三方产品作为标准的Vista类OpenFileDialog,但允许插入自定义控件?
[
我也尝试使用API代码包中的ExplorerBrowser滚动自己(如下图所示),但是尽管梳理了COM API,似乎没有办法在ExplorerBrowser中定义过滤器.
[
我正在尝试修改Delphi 7 Dialogs.pas以访问较新的Windows 7打开/保存对话框(请参阅使用Delphi创建Windows Vista Ready应用程序).我可以使用建议的修改显示对话框; 但是,诸如OnFolderChange和OnCanClose之类的事件不再起作用.
这似乎与将Flags:= OFN_ENABLEHOOK更改为Flags:= 0有关.当Flags设置为0时,将绕过TOpenDialog.Wndproc,并且不会捕获相应的CDN_xxxxxxx消息.
任何人都可以建议对D7 Dialogs.pas进行进一步的代码修改,既可以显示更新的常用对话框,又可以维护原始控件的事件功能?
谢谢...
我正在使用C#中的winforms应用程序.我想要实现的是从用户获取我正在使用以下代码的文件:
OpenFileDialog dlg = new OpenFileDialog();
if (dlg.ShowDialog() == DialogResult.OK)
{
string sFileName = dlg.FileName;
//my code goes here
}
Run Code Online (Sandbox Code Playgroud)
现在,一切正常,但我想在同一个对话框中放入3个单选按钮,这意味着我现在可以从这个对话框中得到两个东西
string sFileName = dlg.FileName; //same as in case of traditional dialog box
//some thing like this which tells which radio button is selected:
dlg.rbTypes.Selected
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?
如何使我的应用程序存储openFileDialog在新的打开还原后打开的最后一个路径呢?
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
acc_path = openFileDialog1.FileName;
Settings.Default.acc_path = acc_path;
foreach (string s in File.ReadAllLines(openFileDialog1.FileName))
{
accs.Enqueue(s);
}
label2.Text = accs.Count.ToString();
}
Run Code Online (Sandbox Code Playgroud) 我在OpenFileDialog中设置了默认文件名是answer_XXXXXX.csv.但它显示如下.默认名称"answer_XXXXXX.csv"未显示为已满.

然后我点击文件名组合框.它准确显示

我该如何解决?
提前致谢.
openfiledialog ×10
c# ×6
winforms ×3
windows-7 ×2
.net ×1
customizing ×1
delphi ×1
delphi-7 ×1
excel ×1
excel-vba ×1
silverlight ×1
topendialog ×1
vba ×1
winapi ×1
wpf ×1