2010-08-17 8 views
6

की परिभाषा नहीं है, मैं here से मूल फ़ाइल संवाद उदाहरण का प्रयास कर रहा हूं, और मुझे 'ओके' पर एक त्रुटि मिलती है, और मुझे नहीं पता कि क्यों।'System.Nullable <bool>' में 'OK'

त्रुटि 1 'System.Nullable' 'ठीक है' और कोई विस्तार विधि 'ठीक है' प्रकार 'System.Nullable' का एक पहला तर्क को स्वीकार करने के लिए एक परिभाषा जानकारी नहीं होती है पाया जा सकता है (यदि आप एक निर्देश का उपयोग याद कर रहे हैं या एक विधानसभा संदर्भ?)

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

क्या विधानसभा से अपने OpenFileDialog है? –

+0

यह काम करता है, क्या आप थोड़ा और विशिष्ट हो सकते हैं? त्रुटि शायद यहां नहीं है ... – jeroenh

उत्तर

16

.NET ढांचे में OpenFileDialog के दो संस्करण हैं: WinForms one और WPF one। ऐसा लगता है कि आप WPF एक का उपयोग कर रहे हैं, जो वास्तव में OpenFile से Nullable<bool> मान देता है। WinForm संस्करण DialogResult मान देता है, जो आपको लगता है कि आप क्या उम्मीद कर रहे हैं।

+0

आपके द्वारा लिंक किया गया संस्करण WIN32 एक है। मुझे नहीं लगता कि डब्ल्यूपीएफ के लिए एक विशिष्ट है। – pug

+1

@pug ध्यान दें कि प्रश्न में वर्ग को प्रेजेंटेशनफ्रेमवर्क असेंबली में परिभाषित किया गया है, जो WPF की मूल असेंबली में से एक है। –

8

ऐसा लगता है कि आप एक स्थानीय संपत्ति DialogResult कहा जाता है। इसके बजाय System.Windows.Forms.DialogResult.OK का उपयोग करने का प्रयास करें।

+0

यह मेरे लिए काम किया। धन्यवाद!!!!! – jjones150

1

ऐसा लगता है कि यह System.Windows.Controls के लिए उपयोग करने की कोशिश कर रहा है। को System.Windows.Forms

की तरह कॉल स्पष्ट बनाने का प्रयास करें:

System.Windows.Forms.OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); 
संबंधित मुद्दे