我有两个单选按钮和一个普通按钮- 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.");
}
}问题是我无法在: FileName中提取textBox1.Text = ofd.FileName;字符串
基本上,这将返回一个空字符串。我不知道这是怎么可能的,实际上axAcroPDF1.src成功地打开了选定的pdf。
有什么想法吗?
发布于 2018-02-26 11:54:32
填充ofd.ShowDialog()属性的是ofd.FileName方法。
遵循代码的逻辑:
对于复选框1,在访问ofd.ShowDialog()之前检查axAcroPDF1的适当返回是正确的,但是没有检查用户在复选框中显示名称之前选择了一个文件。
对于复选框2场景,您正在尝试通过运行ofd3.FileName方法来访问设置它之前的ofd3.ShowDialog()。
这里的关键点是,ofd3.ShowDialog()是您的代码中为用户弹出对话框的点。
您将希望将所有对ofd.FileName和ofd3.FileName的调用移到对话框的各自if检查中。
发布于 2018-02-26 11:54:39
//Try this one
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
axAcroPDF1.src = ofd.FileName;
axAcroPDF1.Show();
textBox1.Text = ofd.FileName;
}https://stackoverflow.com/questions/48987570
复制相似问题