2009-08-29 10 views
6

में विनफॉर्म फॉर्म मैं एक फॉर्म के कई उदाहरण खोलना चाहता हूं और इसे किसी अन्य रूप में या किसी अन्य रूप में प्रदर्शित करना चाहता हूं। यह कैसेसी # फॉर्म

उत्तर

18

यदि आप एमडीआई का उपयोग नहीं कर रहे हैं, तो भी आप एक फॉर्म में किसी फॉर्म में या किसी फॉर्म पर एक फॉर्म जोड़ सकते हैं।

public Form1() 
{ 
    InitializeComponent(); 

    Form2 embeddedForm = new Form2(); 
    embeddedForm.TopLevel = false; 
    Controls.Add(embeddedForm); 
    embeddedForm.Show(); 
} 

आप FormBorderStyleNone करने के लिए सेट करने के लिए जब तक आप अपने प्रपत्र के अंदर एक वास्तविक चल प्रपत्र करना चाहते हैं की आवश्यकता होगी।

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

मुझे पूरी तरह से यकीन नहीं है कि आपके इरादे क्या हैं, लेकिन एमडीआई (जैसा कि अन्य उत्तरों में से एक में उल्लिखित है) वास्तव में वह हो सकता है जो आप खोज रहे हैं।

+0

के कुछ पैनल में रखना चाहता हूं तो क्या होगा यदि मैं आपकी विधि का उपयोग करता हूं या निम्न विधि – Moon

+0

में उत्तर देता हूं तो क्या होगा यदि मैं इस फॉर्म को एमडीआई माता-पिता के कुछ पैनल में रखना चाहता हूं – Moon

+0

मैंने डेल्फी में पूरे दिन ऐसा किया क्योंकि हमारे पास उपयोगकर्ता नियंत्रण नहीं था। मैं अब उपयोगकर्ता नियंत्रण का उपयोग कर रहा हूं सी # दिनों में क्योंकि यह मूल रूप से समकक्ष प्रतीत होता है। इस दृष्टिकोण को लेकर, क्या मुख्य रूप और एम्बेडेड Form_Load ईवेंट आग लगेंगे? – Steve

1
Form1 fChild = new Form1(); 
fChild.MdiParent = this; 
fChild.Show(); 

और माता पिता की IsMDIContainer सही पर सेट किया जाना चाहिए करने के लिए।

एक पूर्ण ट्यूटोरियल के लिए, आप इसका उल्लेख कर सकते हैं: Introduction to MDI Forms with C# @ CodeProject

+0

यदि मैं इस फॉर्म को एमडीआई पैरेंट – Moon

4

आप को:

1) एमडीआई के लिए चुनें, अपने जीयूआई के लिए पूर्ण एमडीआई शैली को स्वीकार करने का मतलब है कि

या

2) नहीं सभी पर एम्बेड फार्म, यह बेहतर है (और आसान है) UserControls का उपयोग करने के लिए। एक विकल्प बनाने से पहले उन्हें आज़माएं। यदि आप फॉर्म का उपयोग करते हैं, तो सुनिश्चित करें कि शॉर्टकट कुंजियां आदि आपके जैसे काम कर रहे हैं।

लघु परिचय: आप एक फॉर्म की तरह उपयोगकर्ता नियंत्रण तैयार करते हैं और फिर किसी अन्य नियंत्रण की तरह किसी फॉर्म पर रख देते हैं।

+1

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

0

मैं इस पुराने धागे में कुछ इसी तरह की तलाश में आया था। यदि कोई और देख रहा है - मैंने नया आइटम> विंडोज फॉर्म> विरासत फॉर्म जोड़ा था। यह आपको किसी अन्य रूप के लिए शुरुआती बिंदु के रूप में एम्बेड करने के लिए एक फॉर्म चुनने की अनुमति देता है। यह वीएस 2015 सामुदायिक संस्करण में था।

+0

** स्पष्टीकरण **: यह * एक फॉर्म * एम्बेडिंग नहीं है, यह ** एक प्रपत्र ** subclassing है। सरल परिस्थितियों के लिए उपयोगी हो सकता है। विशेष रूप से, आप मूल रूप के किसी भी/सभी चारों ओर अधिक नियंत्रण संलग्न करने के लिए ** डॉकिंग ** का उपयोग करने में सक्षम हो सकते हैं - यदि यह पहले से ही डॉकिंग का उपयोग नहीं करता है।अन्यथा, मुझे लगता है कि आप जो भी कर सकते हैं वह चौड़ाई और ऊंचाई का विस्तार करना है, और पैरेंट फॉर्म के नियंत्रण के दाएं और नीचे नियंत्रण जोड़ना शुरू करना है। समस्या यह है कि यदि माता-पिता का रूप बदलता है, जैसे इसकी आवश्यक चौड़ाई और ऊंचाई में परिवर्तन होता है, तो यह आपके सबक्लास फॉर्म में सबकुछ स्थानांतरित करने का दर्द हो सकता है। – ToolmakerSteve

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