2010-08-17 34 views
6

我想從here獲取一個基本的文件對話框示例,並且在'OK'上出現錯誤,我不知道爲什麼。'System.Nullable <bool>'不包含'OK'的定義

錯誤1'System.Nullable'不包含'OK'的定義,並且沒有找到接受'System.Nullable'類型的第一個參數的擴展方法'OK'(您是否缺少using指令集引用?)

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

你打開文件對話框什麼組件可從? – 2010-08-17 15:06:15

+0

這個工作,你可以更具體一點?錯誤可能不在這裏... – jeroenh 2010-08-17 15:06:22

回答

16

.NET framework中有兩個版本的OpenFileDialogWinForms oneWPF one。看起來你使用的是WPF,事實上,它返回的Nullable<bool>值。 WinForm版本返回一個DialogResult值,這似乎是你所期望的。

+0

您鏈接的版本是WIN32版本。我不認爲有一個特定於WPF的。 – pug 2013-02-15 18:37:42

+1

@pug請注意,所討論的類是在PresentationFramework程序集中定義的,該程序集是WPF的核心程序集之一。 – 2013-02-15 19:01:15

8

這聽起來像你有一個名爲DialogResult本地屬性。請嘗試使用System.Windows.Forms.DialogResult.OK

+0

這對我有效。謝謝!!!!! – jjones150 2016-07-21 21:18:54

1

它看起來像它試圖使用ShowDialogSystem.Windows.Controls。 嘗試進行調用明確到System.Windows.Forms

像:

System.Windows.Forms.OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); 
相關問題