我在OpenFileDialog中设置了默认文件名为answer_XXXXXX.csv。但它是这样显示的。默认名称"answer_XXXXXX.csv“不会完整显示。
然后我点击文件名组合框。它准确地显示出来。
我怎么才能修复它?
发布于 2013-06-18 16:37:30
对此有一个小的解决方法。在调用ShowDialog()之前,请使用以下代码行。
openfiledialog.ShowHelp = true;示例:
OpenFileDialog openfiledialog = new OpenFileDialog();
openfiledialog.ShowHelp = true;
openfiledialog.FileName = "answer_XXXXXXX.csv";
openfiledialog.ShowDialog();有关详细信息,请访问:
发布于 2013-06-18 16:43:57
这是另一个变通方法,你可以使用更复杂的Win32 api函数来访问文件名组合框并做任何你想做的事情,但是这个变通方法使用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();
}我不能解释这个bug,但有一些工作可以解决,上面的就是其中之一。
发布于 2017-01-24 17:33:32
King King的答案似乎是最好的解决方案,我使用了基本相同的解决方案,但可能更简单(显然我没有名气直接对他的帖子进行投票或评论):
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) {
...
}https://stackoverflow.com/questions/17163784
复制相似问题