我使用以下内容显示“打开文件”对话框:
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.FileName = Properties.Settings.Default.Last_competition_file;
fdlg.Filter = "FS database files (*.fsdb)|*.fsdb|All files (*.*)|*.*";
fdlg.FilterIndex = 0;
if (fdlg.ShowDialog(this) == DialogResult.Cancel) return false;
(Properties.Settings.Default.Last_competition_file包含最后一个文件的完整路径)
问题:对于文件名“c:\ data \ nationals_2014.fsdb”,文件名字段仅显示“ionals_2014.fsdb”。
当点击文件名字段,并将光标移动到左侧时,文件名的其余部分为&路径重新出现。但我正在寻找一种方法,从一开始就可以看到整个文件名。
请注意,这不是长度问题。我也尝试分别设置路径和文件名(通过OpenFileDialog.InitialDirectory),但即便如此,只显示(现在更短)文件名的尾端。
如何让Open File对话框从头开始显示完整的预填充文件名?
答案 0 :(得分:5)
警告:这是一个 Kludge ,而不是真正的答案。
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.FileName = Properties.Settings.Default.Last_competition_file;
fdlg.Filter = "FS database files (*.fsdb)|*.fsdb|All files (*.*)|*.*";
fdlg.FilterIndex = 0;
fdlg.ShowHelp = true;
fdlg.HelpRequest += new System.EventHandler(HelpRequested); ;
if (fdlg.ShowDialog(this) == DialogResult.Cancel) return false;
private void HelpRequested(object sender, EventArgs e)
{
MessageBox.Show(".. is no Help", "There..");
}
Dialog的风格恢复了较旧的化身。
耸肩。一些变通方法让我对很多事情感到好奇。
答案 1 :(得分:0)
在Windows 10上,我通过打开文件对话框进行了如下设置:
var dialog = new OpenFileDialog{
Filter = "excel files (*.xlsx)|*.xlsx",
InitialDirectory = @"c:\temp",
FileName = @"MyFileNameExceeds14Characters.xlsx"
};
dialog.ShowDialog();
解决方法:
AutoUpgradeEnabled = false
以恢复为较旧的对话框样式。但是随后您就只能使用旧版UI。Path.GetFileNameWithoutExtension()
运行该文件,以尽可能减少文件名。SaveFileDialog
代替,这不会出现此问题。答案 2 :(得分:-1)
在另一个帖子上找到了一个好的答案: c# Sending keyboard commands to another window / process 这样可以很好地修复文件名显示。
我仍然使用计时器,以确保对话框在活动屏幕上居中。显示对话框后:
Expression
答案 3 :(得分:-1)
插入代码:
SendKeys.Send("{HOME}");
行之前:
if (fdlg.ShowDialog(this) == DialogResult.Cancel) return false;
完成这项工作。