2009-04-01 12 views
17

मेरे पास एक .NET 3.5 विंडोज़ फॉर्म है जिसे मैं किसी अन्य रूप में एम्बेड करना चाहता हूं। क्या उस फॉर्म को नियंत्रण में बदलने का कोई त्वरित तरीका है?.NET: विंडोज़ विंडो को विंडोज़ नियंत्रण में कैसे परिवर्तित करें

धन्यवाद

उत्तर

35

बदलें प्रपत्र फार्म के बजाय UserControl से प्राप्त करना है, तो किसी भी त्रुटि के संकलन को ठीक।

+1

इस मुद्दे को स्वयं ही निपटाने के दौरान बस यह जवाब मिला। बहुत बढ़िया कितना आसान है। –

+0

मैं इसे VB.NET में कैसे करूं? फॉर्म को 'पब्लिक क्लास टाइमशीट ग्रिड' के रूप में घोषित किया गया है, जिसमें कोई स्पष्ट 'विरासत' नहीं है। – ProfK

+0

विजुअल स्टूडियो 2012 (कम से कम) में या अपेक्षाकृत सरल रूपों के साथ मैंने कोशिश की है, ऐसा करने से यह उपयोग करने योग्य कोड बनाता है लेकिन आप वीएस डिजाइनर में नियंत्रण नहीं खोल सकते हैं। कोई त्रुटि नहीं, लेकिन जब आप डिज़ाइनर खोलते हैं तो आपको केवल सभी नियंत्रण तत्वों की एक सूची दिखाती है, यह फ़ाइल संवाद तत्वों/आदि के लिए कैसे करता है। लेकिन आप कोई नियंत्रण लेआउट नहीं देखते हैं। अगर कोई जानता है कि इसे कैसे ठीक किया जाए, तो बताओ! –

8

वहाँ भी एक नियंत्रण में एक फार्म एम्बेड करने के लिए एक रास्ता है: यहाँ VB में कोड है:

Public Shared Sub ShowFormInControl(ByRef ctl As Control, ByRef frm As Form) 
    If ctl IsNot Nothing AndAlso frm IsNot Nothing Then 
     frm.TopLevel = False 
     frm.FormBorderStyle = FormBorderStyle.None 
     frm.Dock = DockStyle.Fill 
     frm.Visible = True 
     ctl.Controls.Add(frm) 
    End If 
End Sub 

मुझे लगता है कि मैं इतने पर एक और पद से इस कोड को प्राप्त कर लिया है, लेकिन मुझे याद नहीं कर सकते हैं, तो क्षमा करें अगर यह आपका कोड स्निपेट है!

+0

में है, वही बात सी # में काम करती है, जाहिर है। – GWLlosa

+1

मुझे लगता है कि आपको सी # में काम करने के लिए कुछ चीजें बदलनी होंगी, अन्यथा संकलक गुस्सा होगा ... – Joey

0

यह नहीं कह रहा कि आपको यह करना चाहिए लेकिन भविष्य में आप MEF पर एक नज़र डाल सकते हैं। यह समग्र अनुप्रयोगों के निर्माण के लिए एक ढांचा है जो ऐसा लगता है जो आप इसे प्राप्त करने की कोशिश कर रहे हैं।

0

मैंने एक अतिरिक्त के साथ @Neil Barnwell के समाधान का उपयोग किया। मैं मैन्युअल .vbprog फ़ाइल संपादित और फ़ॉर्म की "उप-प्रकार" के लिए "UserControl" में बदल:

<SubType>UserControl</SubType> 

यह नहीं बल्कि एक रूप की तुलना में एक उपयोगकर्ता नियंत्रण के रूप में दिखाने के लिए, परियोजना एक्सप्लोरर में आइकन अनुमति देता है।

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