【发布时间】:2018-02-26 11:33:53
【问题描述】:
我有两个单选按钮和一个常规按钮 - button2。
我创建了一个 if else 语句,用于检查单击了哪个单选按钮并相应地执行给定任务。特别是,如果:
- 单击单选按钮 1:要求选择一个 pdf 文件,打开 axAcroPDF1 连接并将 OpenFileDialog 文件名输出到文本框
- 单选按钮 2 已单击:其他内容
- 未单击单选按钮:发送消息.. 选择文件。
这是我的尝试:
{
if (radioButton1.Checked == true)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "PDF|*pdf";
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
axAcroPDF1.Show();
axAcroPDF1.src = ofd.FileName;
}
textBox1.Text = ofd.FileName;
MessageBox.Show(ofd.FileName);
}
else if (radioButton2.Checked == true)
{
OpenFileDialog ofd3 = new OpenFileDialog();
ofd3.Filter = "PDF|*pdf";
textBox1.Text = ofd3.InitialDirectory + ofd3.FileName;
if (ofd3.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
axAcroPDF1.Show();
}
}
else if (radioButton2.Checked == false & radioButton1.Checked == false)
{
MessageBox.Show("Please select a processing option");
}
else
{
MessageBox.Show("Error.");
}
}
问题是我无法将 FileName 字符串提取到:textBox1.Text = ofd.FileName;
基本上,这会返回一个空字符串。我不确定这怎么可能,实际上 axAcroPDF1.src 成功打开了选定的 pdf。
有什么想法吗?
【问题讨论】:
-
只需将
textBox1.Text = ofd3.FileName;移动到if- 注意:OpenFileDialog.FileName将在OpenFileDialog.ShowDialog()和InitialDirectory之后有一个值,默认为string.Empty-HTH ;)。 -
仅供参考,您的最后一个
else将永远不会被击中并且可以被删除。您的最后一个else if是多余的(前两个测试失败意味着第三个)...您可以将 that 替换为else。
标签: c# openfiledialog