2013-03-05 81 views
0

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

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

这使用户能够选择一个文件(.exe)的的DialogResult的的OpenFileDialog显示。它从来没有显示确定,即使我加载正常和工作.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

回答

5

尝试更改代码是这样的:

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

+1最短的代码,可能的情况下将接受答案。谢谢! :) – 2013-03-05 08:46:44

4

您需要的ShowDialog()的返回值存储在一个变量,然后比较这对DialogResult.OK

var result = openFileDialog1.ShowDialog(); 

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

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

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