2016-06-29 47 views
0

我嘗試打開系統文件對話框來選擇圖片。代碼正常運行在我的電腦中。但在另一臺電腦不能顯示系統文件對話框。openFileDialog.ShowDialog()沒有顯示對話框

這裏是我的簡單的代碼: -

private void PicInputBtn_Click(object sender, RoutedEventArgs e) 
{ 
    var dialog = new Microsoft.Win32.OpenFileDialog 
    { 
     DefaultExt = ".jpg", 
     Filter = "img file|*.jpg", 
    }; 

    if (dialog.ShowDialog() != true) 
    { 
     return; 
    } 
} 
+0

你已經在這個類似的問題中嘗試過答案嗎? http://stackoverflow.com/questions/2201227/c-wpf-openfiledialog-does-not-appear? – Sosian

+0

看看事件查看器> Windows日誌>應用程序。應該有一個錯誤日誌 – osmanraifgunes

+2

@Sayse'Microsoft.Win32.OpenFileDialog'返回'bool?'。代碼沒問題。你正在考慮'System.Windows.Forms.OpenFileDialog' –

回答

0

更改您的代碼:

private void PicInputBtn_Click(object sender, RoutedEventArgs e) 
{ 
    var dialog = new Microsoft.Win32.OpenFileDialog 
    { 
     DefaultExt = ".jpg", 
     Filter = "img file|*.jpg" // You had an extra ',' here. 
    }; 

    if ((Nullable<bool>dialog.ShowDialog()) == true) // Also you forgot to put Nullable<bool> 
    { 
     // string filename = dlg.FileName; 
    } 
    else 
    { 
     return; 
    } 
} 
+0

也許不是代碼問題,我請求我的隊友下載win7 sp1補丁和她的電腦可以正確顯示OpenFileDialog!無論如何,仍然感謝您的anwser! – Fireyu

+0

@Fireyu沒關係。 –

0

如果什麼也沒有發生,但將鼠標指針變成一個小忙指示器。

你可以試試你的線程設置爲STAThread

[STAThread]  
static void Main(string[] args) 
{ 
    var o = new OpenFileDialog(); 
    var r = o .ShowDialog(); 
} 

Howover他們有很多理由可以打破OpenFileDialog,你可以嘗試在管理模式下啓動程序,並嘗試重新安裝.NET框架