मैं OpenFileDialog की जटिलता को खारिज नहीं करता। वास्तव में काम करने वाले व्यक्ति को बनाना इतना आसान नहीं है। जब आप अपना खुद का निर्माण करते हैं, तो यह "सामान्य" संवाद नहीं होता है और नतीजतन यह उपयोगकर्ताओं को भ्रमित करता है। यह सच है भले ही आप इसे अच्छी तरह से करें, जो मुश्किल है। तो मैं सुझाव दूंगा कि आप कुछ नया लिखने के बजाय पहले से मौजूद है, विस्तारित करने के लिए चिपके रहें।
this article for an extension of OFD जांचें जो कि आप जो चाहते हैं उसे करने के लिए tweaked हो सकता है। एक कॉलबैक है जिसे आप सी # में लिखते हैं जो पथ चयन का जवाब देता है।
संबंधित: FolderBrowserDialogEx FolderBrowserDialog पर एक समान एक्सटेंशन है। नाम के बावजूद, आप इसे फाइलों के साथ-साथ फ़ोल्डरों की खोज के लिए कॉन्फ़िगर कर सकते हैं। एक कॉलबैक होता है जो कुछ (एक फ़ोल्डर, एक फ़ाइल) का चयन किया जाता है, और उस कॉलबैक के भीतर आप जो कर सकते हैं वह कर सकते हैं। उदाहरण के लिए, किसी फ़ोल्डर के भीतर फ़ाइलों के अंदर झुकें और केवल उन फ़ाइलों के साथ प्रदर्शित करने के लिए फ़ाइलों की सूची पॉप्युलेट करें।
एक और विकल्प जिसे आप विचार कर सकते हैं dialog library from Ookii है। यह OpenFileDialog का एक ओपन सोर्स कार्यान्वयन है, और इसमें Vista में सभी नए संवाद सामग्री के लिए COM wrappers शामिल हैं। उस लाइब्रेरी का उपयोग करके आप एक Vista OpenFileDialog पॉप कर सकते हैं और C# कोड में IFileDialogEvents इंटरफ़ेस से ईवेंट प्राप्त कर सकते हैं। ऐसी एक घटना ऑनफोल्डर चेंज() है। हैंडलर के भीतर आप IFolder.GetFolder() को कॉल कर सकते हैं जो आपको IShellItem प्राप्त करेगा, जो आपको वह फ़ोल्डर देता है जिस पर उपयोगकर्ता बदल रहा है। अगला चरण आइटम को सेट करने और संभवतः फ़िल्टर के सेट को फ़िल्टर करना होगा, जो एक अभ्यास है जिसे मैं पाठक को छोड़ दूंगा ...
दिलचस्प! मैं कल इसे देख लूंगा। धन्यवाद! – djcouchycouch