OpenFileDialog C#的默认名称?
我在OpenFileDialog中设置了默认文件名是answer_XXXXXX.csv。 但它显示如下。 默认名称“answer_XXXXXX.csv”未显示为已满。
然后我点击文件名combobox。 它准确显示
我该如何解决?
提前致谢。
这有一个小的解决方法。 在调用ShowDialog()之前有下面一行。
openfiledialog.ShowHelp = true;
例:
OpenFileDialog openfiledialog = new OpenFileDialog(); openfiledialog.ShowHelp = true; openfiledialog.FileName = "answer_XXXXXXX.csv"; openfiledialog.ShowDialog();
更多:
这是另一种解决方法,您可以使用更复杂的Win32 api函数来访问文件名combobox并执行您想要的任何操作,但这项工作使用SendKeys
,此时我没有时间深入了解Win32 API函数:
public Form1() { InitializeComponent(); t.Interval = 100; t.Tick += (s, e) => { SendKeys.Send("{HOME}+{END}"); t.Stop(); }; } Timer t = new Timer(); private void button1_Click(object sender, EventArgs e) { OpenFileDialog open = new OpenFileDialog(); open.FileName = "I love .NET so much"; t.Start(); open.ShowDialog(); }
我无法解释这个错误,但有一些工作,上面的一个是其中之一。
King King的答案似乎是最好的解决方案,我使用的基本相同,但也许有点简单(显然我没有得到直接投票或直接评论他的post的声誉):
OpenFileDialog oFileD = new OpenFileDialog(); oFileD.InitialDirectory = initialDir; oFileD.FileName = fileName; if (oFileD.FileName != "") { Timer t = new Timer(); t.Interval = 100; t.Tick += (s, e) => { SendKeys.Send("{HOME}+{END}"); t.Stop(); }; t.Start(); } if (oFileD.ShowDialog() == DialogResult.OK) { ... }