2010-08-17 10 views
6

here dan temel bir dosya iletişim örneği deniyorum ve 'Tamam' bir hata alıyorum ve nedenini bilmiyorum. bulunamadı'System.Nullable <bool>' 'OK' tanımı için anlam içermiyor

Hata 1 'System.Nullable' 'OK' ve hiçbir uzantı yöntemi 'Tamam' türü 'System.Nullable' bir ilk argüman kabul için bir tanım içermiyorsa (using yönergesi eksik Eğer DialogResult adlı bir yerel özelliği var gibi ya bir montaj referans?)

private void button1_Click(object sender, System.EventArgs e) 
{ 
    Stream myStream = null; 
    OpenFileDialog openFileDialog1 = new OpenFileDialog(); 

    openFileDialog1.InitialDirectory = "c:\\" ; 
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ; 
    openFileDialog1.FilterIndex = 2 ; 
    openFileDialog1.RestoreDirectory = true ; 

    if(openFileDialog1.ShowDialog() == DialogResult.OK) 
    { 
     try 
     { 
      if ((myStream = openFileDialog1.OpenFile()) != null) 
      { 
       using (myStream) 
       { 
        // Insert code to read the stream here. 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); 
     } 
    } 
} 
+0

sizin OpenFileDialog ne gibi montaj mı? –

+0

Bu eser, biraz daha spesifik olabilir misiniz? Hata muhtemelen burada değil ... – jeroenh

cevap

16

.NET çerçevesinde OpenFileDialog'un iki sürümü vardır: WinForms one ve WPF one. Aslında WPF'yi kullanıyorsunuzdur, aslında OpenFile'dan Nullable<bool> değerini döndürür. WinForm sürümü, beklediğiniz gibi görünen bir DialogResult değerini döndürür.

+0

Bağladığınız sürüm WIN32 olanıdır. WPF'ye özgü bir tane olduğunu sanmıyorum. – pug

+1

@pug Söz konusu sınıfın, WPF'nin çekirdek meclislerinden biri olan PresentationFramework grubunda tanımlandığını unutmayın. –

8

geliyor. Bunun yerine System.Windows.Forms.DialogResult.OK kullanmayı deneyin.

+0

Bu benim için çalıştı. Teşekkür ederim!!!!! – jjones150

1

System.Windows.Controls için ShowDialog'u kullanmaya çalıştığı görülüyor. System.Windows.Forms

Beğen çağrı açık hale deneyin:

System.Windows.Forms.OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); 
İlgili konular