2012-04-03 8 views
22

मैं Winforms का उपयोग कर एक से अधिक पेज एप्लिकेशन बनाने की कोशिश कर रहा हूं। मुझे एकाधिक पैनलों का उपयोग करने की इच्छा थी - प्रत्येक पैनल अलग-अलग पेज का प्रतिनिधित्व करता है, इसलिए जब मैं अलग-अलग सामग्री प्रदर्शित करने की आवश्यकता होती हूं तो मैं उनके बीच स्विच कर सकता हूं।विनफॉर्म - डिज़ाइनर में तत्व कैसे दिखाना/छुपाएं?

मेरी समस्या डिजाइनर दृश्य में पैनलों को ढेर करने के बारे में है। जब मेरे पास 2+ पूर्ण स्क्रीन पैनल होते हैं, तो वे सभी एक-दूसरे पर ढेर होते हैं और मैं उस व्यक्ति को नहीं देख सकता जिसे मैंने पहले बनाया था। इस के लिए कोई भी समाधान है ? दृश्यता बदलना डिजाइनरों को प्रभावित नहीं करता है। परतों को दिखाने/छिपाने के लिए फ़ोटोशॉप जैसी पसंद के रूप में इसके बारे में सोचें। मैं विजुअल सी # 2010 एक्सप्रेस का उपयोग कर रहा हूं।

अग्रिम धन्यवाद, कामिल

+0

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

उत्तर

22

कई यहाँ विकल्प:

  1. पैनल आप ध्यान का चयन करने के Document Outline (View --> Other Windows --> Document Outline) दृश्य का उपयोग करें। आप इसे राइट-क्लिक कर सकते हैं और इसे अन्य सभी के सामने रखने के लिए Bring to Front चुन सकते हैं।
  2. हालांकि यह संभवतः आपके द्वारा किए जा रहे कार्यों के लिए प्रासंगिक नहीं है, लेकिन आप TabControl का उपयोग करने पर विचार कर सकते हैं, जिसे आप डिज़ाइन समय पर दृष्टि से गड़बड़ कर सकते हैं। यह केवल एक उचित समाधान है यदि आप चाहते हैं कि आपके उपयोगकर्ता मैन्युअल रूप से वह पैनल बदल सकें जो वे देख रहे हैं।
  3. अपने पैनलों को कस्टम UserControl कक्षाओं में ले जाने पर विचार करें और उन पर अलग से काम करें। यदि इन पैनलों की सामग्री और तर्क उचित रूप से स्वयं निहित है तो आप इसे अपने कोड को बेहतर पुन: व्यवस्थित करने के लिए वैसे भी ऐसा करना चाहेंगे।

परिशिष्ट: तुम भी एक हैक है कि एक TabControl के टैब उपयोगकर्ता के लिए अदृश्य बनाता है उपयोग कर सकते हैं। अपने फॉर्म पर TabControl डालें, और रन-टाइम पर ItemSize ऊंचाई 1 तक सेट करें। यह उपयोगकर्ता को टैब को अपने आप बदलने के लिए असंभव बनाता है, लेकिन फिर भी आप डिज़ाइनर में दृश्य टैब को बदलने की अनुमति देता है।

myTabControl.ItemSize = new Size(myTabControl.ItemSize.Width, 1); 

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

+0

मैंने बैक विकल्प पर आगे/भेजने के लिए उपयोग करने का निर्णय लिया क्योंकि यह अब के लिए सबसे आसान समाधान है और इसमें मेरे अनुप्रयोग संरचना (टैब नियंत्रण) को बदलने में शामिल नहीं है। दुर्भाग्य से मुझे व्यू-> अन्य विंडोज़-> दस्तावेज़ रूपरेखा नहीं मिल सका, इसलिए मुझे तब तक सभी पैनलों पर भेजने के लिए उपयोग करना होगा जब तक कि मैं उस व्यक्ति तक नहीं पहुंच जाता जिसे मैं ढूंढ रहा हूं। –

0

एक दृष्टिकोण है कि मैं इस स्थिति में उपयोग किया है पैनल मैं सामने करने पर काम कर रहा हूँ लाने के लिए दस्तावेज़ Explorer विंडो का प्रयोग है।

0

मुझे यह करने का सही तरीका नहीं है, लेकिन मैं इस मामले में खुद को क्या करता हूं, यह बहुत कम नियंत्रण करता है और बाद में कार्यक्रम चलाने पर मैं शुरूआती आकार और स्थानों को बदलता हूं।

4

मैं इस तरह के परिदृश्य को प्रबंधित करने के लिए प्रारूप> आदेश के तहत "सामने लाएं" या "वापस भेजें" का उपयोग करता हूं, लेकिन आप सही हैं, यह उस दृश्यता को बेकार करता है केवल रनटाइम (AFAIK)।

चीयर्स

0

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

आप विभिन्न लेआउट के साथ दो अलग-अलग विंडो का उपयोग करने और उनके बीच स्विचिंग दिखाने पर भी विचार कर सकते हैं।

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

उन सुझावों में से प्रत्येक सुझाव कुछ यूआई टुकड़े अधिक अलग कर देगा, जिसे वांछित किया जा सकता है यदि आपके द्वारा प्राप्त किए गए प्रत्येक लेआउट को एप्लिकेशन के एक अलग टुकड़े से जोड़ा जाता है। उन सुझावों का उपयोग करने से डिज़ाइनर को प्रबंधित करने के लिए उपयोग करना अधिक आसान हो सकता है।

0

तो आप वीएस डिजाइनर व्यू में अपने पैनल को दिखाने/छिपाने में सक्षम होना चाहते हैं (न केवल वास्तविक निष्पादन योग्य चल रहा है) सही है?

कुछ this मदद चाहिए?

यदि नहीं, तो शायद आप पैनलों के बजाय कस्टम उपयोगकर्ता नियंत्रण बनाने का प्रयास कर सकते हैं जो आपको दृश्यता गुणों को सेट करने की अनुमति देगा या आप WPF का उपयोग करने का सहारा ले सकते हैं जो इस प्रकार की कार्यक्षमता प्रदान करता है। अधिक जानकारी के लिए here पर क्लिक करें।

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