2016-06-29 9 views
0

私はシステムファイルダイアログを開いて画像を選択しようとしました。私のコンピュータでコードが正常に実行されました。しかし、別のコンピュータでは、システムファイルダイアログを表示することはできません。openFileDialog.ShowDialog()did not show dialog

そして、ここでは私の単純なコードである: - へ

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? 'を返します。コードはOKです。あなたは '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にあなたのスレッドを設定しようとすることができます:彼らはOpenFileDialogを破ることができる多くの理由ですHowover、あなたが管理者モードでプログラムを起動しようと再インストールしようとすることができる

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

.NET Frameworkの

関連する問題