1

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

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

这使用户能够选择一个文件 (.exe) ,openFileDialog的DialogResult显示none。即使我加载了正常且工作的.exe,它也永远不会显示OK 。

这是我的代码。

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

4

3 回答 3

7

尝试像这样更改代码:

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
        string path = openFileDialog1.FileName;
        ExtractIcon(path);
}
于 2013-03-05T08:40:27.510 回答
5

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

var result = openFileDialog1.ShowDialog();

if (result == DialogResult.OK){
  string path = openFileDialog1.FileName;
  ExtractIcon(path);
}
于 2013-03-05T08:39:48.450 回答
2

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

var result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
    string path = openFileDialog1.FileName;
    ExtractIcon(path);
}
于 2013-03-05T08:40:23.107 回答