我有两个单选按钮和一个常规按钮 - button2。
我创建了一个if else语句,用于检查单击哪个单选按钮并相应地执行给定任务。特别是,如果:
这是我的尝试:
{
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.");
}
}
问题是我无法在:textBox1.Text = ofd.FileName;
中提取FileName字符串
基本上,这会返回一个空字符串。我不确定这是怎么可能的,实际上axAcroPDF1.src成功打开了所选的pdf。
有任何想法吗?
它是填充ofd.ShowDialog()
财产的ofd.FileName
方法。
遵循代码的逻辑:
对于复选框1,您在访问ofd.ShowDialog()
之前检查axAcroPDF1
的相应返回是正确的,但在复选框中显示名称之前,没有检查用户是否选择了文件。
对于复选框2方案,您尝试在运行ofd3.FileName
方法之前访问ofd3.ShowDialog()
。
这里的关键点是ofd3.ShowDialog()
是代码中为用户弹出对话框的点。
您需要将对齐ofd.FileName
和ofd3.FileName
的所有调用都移到对话框中各自的if
检查中。
//Try this one
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
axAcroPDF1.src = ofd.FileName;
axAcroPDF1.Show();
textBox1.Text = ofd.FileName;
}