2011-09-06 8 views
8

आम तौर पर, नियंत्रणों में नियंत्रण जोड़े जा रहे हैं। लेकिन मुझे एक विपरीत बात करने की ज़रूरत है - कंटेनर उपयोगकर्ता नियंत्रण में एक फॉर्म उदाहरण जोड़ें।उपयोगकर्ता नियंत्रण में फ़ॉर्म जोड़ें - क्या यह संभव है?

इसका कारण यह है कि मुझे अपने आप में एक तृतीय-पक्ष एप्लिकेशन एम्बेड करने की आवश्यकता है। फ़ॉर्म को उपयोगकर्ता नियंत्रण में कनवर्ट करना जटिलता के कारण व्यवहार्य नहीं है।

उत्तर

11

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

public partial class UserControl1 : UserControl { 
    public UserControl1() { 
     InitializeComponent(); 
    } 
    public void EmbedForm(Form frm) { 
     frm.TopLevel = false; 
     frm.FormBorderStyle = FormBorderStyle.None; 
     frm.Visible = true; 
     frm.Dock = DockStyle.Fill; // optional 
     this.Controls.Add(frm); 
    } 
} 
+0

यह काम करता है, धन्यवाद। मैंने देखा कि सिर्फ एक गड़बड़ - एम्बेडेड फॉर्म आकार बदलने के लिए प्रतिक्रिया करना बंद कर दिया, यह निश्चित आकार बनी हुई है। इसे ठीक करने के लिए कोई भी विचार? – SharpAffair

+0

अच्छा, यह सामान्य है, एम्बेडेड नियंत्रण उपयोगकर्ता द्वारा आम तौर पर आकार बदलने योग्य नहीं होते हैं। उपयोगकर्ता नियंत्रण को नीचे और दाएं को एंकर करें ताकि प्रक्रिया के एम्बेडेड फॉर्म के आकार को बदलकर यह उस फॉर्म के साथ आकार बदल सके। –

+0

दोनों एम्बेडेड फॉर्म और उपयोगकर्ता नियंत्रण में डॉक सेट भरने के लिए सेट है। नियंत्रण का आकार बदलता है, लेकिन एम्बेडेड फॉर्म नहीं करता है। – SharpAffair

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