2010-02-19 11 views

उत्तर

44

बहुत बस रखो:

उपयोगकर्ता नियंत्रण एक कस्टम, पुन: प्रयोज्य घटक बनाने का एक तरीका है। उपयोगकर्ता नियंत्रण में अन्य नियंत्रण हो सकते हैं लेकिन एक फॉर्म द्वारा होस्ट किया जाना चाहिए।

विंडोज फॉर्म नियंत्रण के लिए कंटेनर हैं, जिसमें उपयोगकर्ता नियंत्रण शामिल हैं। हालांकि इसमें उपयोगकर्ता नियंत्रण के रूप में कई समान गुण शामिल हैं, लेकिन इसका मुख्य उद्देश्य नियंत्रण होस्ट करना है।

+0

क्या उपयोगकर्ता अन्य उपयोगकर्ता नियंत्रण होस्ट (युक्त) को नियंत्रित कर सकता है? –

+0

@RobertNiestroj हाँ वे कर सकते हैं। – LxL

4

एक विंडोज़ फॉर्म उपयोगकर्ता नियंत्रण के लिए एक कंटेनर है।

+3

तो उपयोगकर्ता का नियंत्रण है! –

+0

आप उपयोगकर्ता नियंत्रण में एक फॉर्म कैसे डालते हैं !? – Fredou

+1

आप नहीं कर सकते हैं, लेकिन आप निश्चित रूप से उपयोगकर्ता नियंत्रण में उपयोगकर्ता नियंत्रण डाल सकते हैं। –

17

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

आप वास्तव में गलत पर अपने उच्चस्तरीय संपत्ति की स्थापना द्वारा एक बच्चे विंडो में फार्म कर सकते हैं:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     var child = new Form2(); 
     child.TopLevel = false; 
     child.Location = new Point(10, 5); 
     child.Size = new Size(100, 100); 
     child.BackColor = Color.Yellow; 
     child.FormBorderStyle = FormBorderStyle.None; 
     child.Visible = true; 
     this.Controls.Add(child); 
    } 
} 
+3

लेकिन आपको वास्तव में ऐसा करने से बचना चाहिए, आईएमओ। :) –

+0

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

+0

मुझे लगता है कि मैं कोड स्पष्टता और संरचना के दृष्टिकोण से बात कर रहा था। निश्चित रूप से, आप यह कर सकते हैं, और निश्चित रूप से, यह समर्थित है, लेकिन मुझे लगता है कि मेरा बिंदु एक डिजाइन पैटर्न के रूप में यह अच्छा उदाहरण नहीं लेना था :) –

0

सबसे बड़ा अंतर form.show है एक अलग खिड़की देता है, जबकि usercontrol does not एक बिना पॉपिंग की तरह सुविधा है माता-पिता। स्क्रॉलबल कंट्रोल से प्राप्त बींड जैसे दोनों नियंत्रणों में बाकी चीजें समान हैं।

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