2016-06-29 46 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框架