打开.exe文件时,openFileDialog DialogResult始终显示NONE

时间:2013-03-05 08:36:52

标签: c# openfiledialog

我目前正在编写一个“快速启动程序”,它允许您打开.exe文件并在单击按钮时启动它们。 为此,我使用openFileDialog让用户打开所需的.exe文件。

此外,我从.exe中提取图标,以便在开始按钮上方显示它。

这使用户可以选择文件(.exe) openFileDialog DialogResult 显示。它永远不会显示确定,即使我加载了正常的工作.exe。

这是我的代码。

private void button1_Click(object sender, EventArgs e)
    {
        openFileDialog1.ShowDialog();
        if (DialogResult == DialogResult.OK)
        {
            string path = openFileDialog1.FileName;
            ExtractIcon(path);
        }
    }

    private void ExtractIcon(string filePath)
    {
        Icon ico = Icon.ExtractAssociatedIcon(filePath);
            pictureBox1.Image = ico.ToBitmap();
    }

我的代码有问题,还是因为 DialogResult

3 个答案:

答案 0 :(得分:6)

尝试更改类似的代码:

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
        string path = openFileDialog1.FileName;
        ExtractIcon(path);
}

答案 1 :(得分:5)

您需要将ShowDialog()的返回值存储在变量中,然后将其与DialogResult.OK进行比较

var result = openFileDialog1.ShowDialog();

if (result == DialogResult.OK){
  string path = openFileDialog1.FileName;
  ExtractIcon(path);
}

答案 2 :(得分:2)

什么是DialogResult变量?不应该是:

var result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
    string path = openFileDialog1.FileName;
    ExtractIcon(path);
}