OpenFileDialog 中的 FileName 显示为空
FileName in OpenFileDialog appears empty
我有两个单选按钮和一个常规按钮 - button2。
我创建了一个 if else 语句来检查单击了哪个单选按钮并相应地执行给定任务。特别是,如果:
- 单击单选按钮 1:询问 select 一个 pdf 文件,打开 axAcroPDF1 连接并将 OpenFileDialog 文件名输出到文本框
- 单击了单选按钮 2:其他内容
- 未单击单选按钮:发送消息.. select 文件。
这是我的尝试:
{
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;
基本上,这个 returns 是一个空字符串。我不确定这是怎么可能的,实际上 axAcroPDF1.src 成功打开了 selected pdf。
有什么想法吗?
ofd.ShowDialog()
方法填充 ofd.FileName
属性。
遵循您的代码逻辑:
对于复选框 1,在访问 axAcroPDF1
之前检查 ofd.ShowDialog()
的适当 return 是正确的做法,但没有检查用户之前是否选择了文件您在复选框中显示名称。
对于复选框 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;
}
我有两个单选按钮和一个常规按钮 - button2。
我创建了一个 if else 语句来检查单击了哪个单选按钮并相应地执行给定任务。特别是,如果:
- 单击单选按钮 1:询问 select 一个 pdf 文件,打开 axAcroPDF1 连接并将 OpenFileDialog 文件名输出到文本框
- 单击了单选按钮 2:其他内容
- 未单击单选按钮:发送消息.. select 文件。
这是我的尝试:
{
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;
基本上,这个 returns 是一个空字符串。我不确定这是怎么可能的,实际上 axAcroPDF1.src 成功打开了 selected pdf。
有什么想法吗?
ofd.ShowDialog()
方法填充 ofd.FileName
属性。
遵循您的代码逻辑:
对于复选框 1,在访问 axAcroPDF1
之前检查 ofd.ShowDialog()
的适当 return 是正确的做法,但没有检查用户之前是否选择了文件您在复选框中显示名称。
对于复选框 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;
}