【发布时间】:2017-09-22 10:03:16
【问题描述】:
我正在尝试做一个“保存文件”浏览器。我希望用户选择的文件名输入显示在标签而不是文本框中。我为我的“打开文件”浏览器做了一个类似的操作,效果很好。请告诉我哪里出错了,谢谢!
private void button5_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Title = "Save File";
saveFileDialog1.Filter = "Text files (*.txt)|*.txt| CONF(*.conf)|*.conf|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.ShowDialog();
if (saveFileDialog1.FileName != "")
{
System.IO.FileStream fs = (System.IO.FileStream)saveFileDialog1.OpenFile();
switch (saveFileDialog1.FilterIndex)
{
case 1:
saveFileDialog1.FileName = saveFileDialog1.FileName + ".txt";
break;
case 2:
saveFileDialog1.FileName = saveFileDialog1.FileName + ".conf";
break;
}
fs.Close();
}
}
private void label2_Click(object sender, EventArgs e)
{
this.label2.Text = saveFileDialog1.FileName;
}
【问题讨论】:
-
您正试图通过单击来设置标签的值?
-
你不应该在
button5_Click中写this.label2.Text = saveFileDialog1.FileName;吗? -
FileName返回带有扩展名的完整路径,您是否故意添加 另一个 扩展名?例如。如果选择了1.txt,您想使用1.txt.txt文件,对吗?至于问题,您无法以其他方法访问局部变量。为此将其设为private字段。虽然我同意@ChetanRanpariya,但您更有可能希望在按钮单击事件处理程序中设置标签文本。
标签: c# winforms label savefiledialog