2013-03-05 79 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); 
}