2010-08-09 12 views
8

मैं इस तरह WPF से FolderBrowserDialog इस्तेमाल करने की कोशिश:FolderBrowserDialog - Win32Exception हुआ - पैरामीटर सही नहीं है

public static bool BrowseFolder(out string folderName) 
{ 
    using (System.Windows.Forms.FolderBrowserDialog dlg = new System.Windows.Forms.FolderBrowserDialog()) 
    { 
     var result = dlg.ShowDialog(); 
     folderName = dlg.SelectedPath; 
     return result == System.Windows.Forms.DialogResult.OK; 
    } 
} 

का उपयोग करते समय दृश्य स्टूडियो 2010 में "अपवाद पर तोड़" मैं में संवाद बंद करने के बाद एक अपवाद मिल ShowDialog() कॉल। मुझे उत्सुकता है कि ऐसा क्यों होता है।

अपवाद: Win32Exception
संदेश: पैरामीटर
स्टैकट्रेस गलत है:, MS.Win32.UnsafeNativeMethods.SetFocus पर (HandleRef hWnd)

अद्यतन
मैं भी स्पष्ट रूप से माता पिता स्थापित करने के लिए कोशिश की, लेकिन अपवाद को फिर भी फेंक दिया गया था।

var w = new System.Windows.Interop.WindowInteropHelper(parent); 
System.Windows.Forms.IWin32Window i = new WindowWrapper(w.Handle); 
result = dlg.ShowDialog(i); 
+0

क्या इसके लिए और कुछ है? क्या आप अपने ऐप में किसी भी अन्य फॉर्म का उपयोग करते हैं? एक खाली WPF ऐप पर इसका परीक्षण करने से कोई अपवाद नहीं बढ़ता है और ठीक चलता है। –

+0

मैंने केवल उस फ़ंक्शन के साथ एक खाली परीक्षण एप्लिकेशन बनाया और उस फ़ंक्शन पर कॉल किया और अपवाद होता है। एप्लिकेशन को देखने के लिए आपको विजुअल स्टूडियो 2010 में "अपवाद तोड़ना" सक्रिय करना होगा (डीबग-> अपवाद ...-> चेकबॉक्स) – testalino

+0

आपको अपवाद की स्टैकट्रेस संपत्ति का मान दिखाना होगा। –

उत्तर

-1

मुझे विश्वास है कि आपको विंडोज़ से कुछ भी चलाने के लिए विंडोज़ फॉर्म होस्ट की आवश्यकता है। फर्म नेमस्पेस ... इसे आज़माएं!

+0

विंडोज़ होस्ट होस्ट नियंत्रण/घटक टूलबॉक्स बीटीडब्ल्यू –

+0

में एक WPF विंडो पर एक विंडोज फॉर्म होस्ट डालने में मदद नहीं करता है। –

+1

नहीं, आपको विंडोज फॉर्म होस्ट की आवश्यकता नहीं है ... –

0

मैं "उपयोग" कथन का उपयोग किये बिना इसे करने का प्रयास करूंगा, शायद यह बहुत जल्दी साफ हो रहा है।

9

यह इंटरपॉप नास्टनेस का थोड़ा सा हिस्सा है। जब संवाद बंद हो रहा है तो डब्ल्यूपीएफ कोड फोकस को मुख्य विंडो पर वापस सेट करने का प्रयास करता है। समस्या यह है कि संवाद ने विंडो को अक्षम कर दिया है, इसलिए इसे अभी तक फोकस नहीं मिल सकता है। डब्ल्यूपीएफ फोकस बदलने के लिए बहुत उत्सुक है और अन्यथा संवाद व्यवहार के बारे में कुछ भी नहीं जानता है। वास्तव में कुछ भी गलत नहीं होता है।

संबंधित मुद्दे