openfiledidialog . showdialog()没有显示对话框

本文关键字:显示 对话框 showdialog openfiledidialog | 更新日期: 2023-09-27 17:53:21

我尝试打开系统文件对话框来选择一个pic。代码在我的电脑上运行正常。但是在另一台计算机上不能显示系统文件对话框。

下面是我的简单代码:-
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;
    }
}

openfiledidialog . showdialog()没有显示对话框

如果什么都没发生,只是鼠标指针变成了一个小小的忙碌指示器。

你可以尝试将你的线程设置为STAThread:

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

然而,有很多原因可以打破OpenFileDialog,你可以尝试在管理模式下启动你的程序,并尝试重新安装。net Framework

修改代码为:

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;
    }
}