.net

2012-01-18 12 views
5

में लेबल प्रबंधित करना मैं वीबी 2008 एक्सप्रेस का उपयोग कर रहा हूं लेकिन यह शायद सभी .NET वातावरण पर लागू होता है।.net

मेरा प्रश्न उन लेबलों के साथ करना है जो कुछ भी नहीं करते हैं। कोई घटना नहीं, और उनका पाठ कभी नहीं बदलता है। वे बस टेक्स्टबॉक्स और अन्य गिज्मोस के ऊपर बैठते हैं ताकि उपयोगकर्ता जानता है कि प्रत्येक डूहोकी क्या है। यह उनका पूरा काम है। सरल। कोई कोड नहीं। (फॉर्म डिजाइनर द्वारा लिखे गए कोड के अलावा।)

मेरी समस्या इतनी दुखी है कि उनमें से कई हैं! मेरे ऐप में एक ही फॉर्म पर कई टैब हैं, और प्रत्येक टैब में बहुत सारी ऑब्जेक्ट्स हैं और प्रत्येक में एक संबद्ध लेबल है। चूंकि मैंने उन्हें नाम देने के लिए कभी भी परेशान नहीं किया है, इसलिए अब मेरे पास लेबल 224 नाम वाला एक लेबल है। यह सही है, 224 लेबल! यह हास्यास्पद हो रहा है। जब मैं प्रॉपर्टी विंडो देखता हूं, कभी-कभी मैं ड्रॉप डाउन का उपयोग करके किसी ऑब्जेक्ट को नाम से चुनना चाहता हूं और वे बहुत सारी स्क्रॉलिंग को मजबूर करते हैं।

प्रश्न: क्या विकास के दौरान कम अवरोधक नामक लेबल (या कोड में संदर्भित किसी भी प्रकार का ऑब्जेक्ट नहीं है) की संख्या को कम करने का कोई तरीका है?

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

उत्तर

4

कुछ चीजें।

सेट गलत पर प्रत्येक लेबल के GenerateMember संपत्ति:

label1.GenerateMember = False 

इस कोड को देखने कॉम्बो बक्से और IntelliSense में दिखाई देने से लेबल नहीं कर पाएगा।

इसके अलावा, आपके पास बहुत अधिक नियंत्रण हैं।

आपने "टैब" का उल्लेख किया है, इस मामले में, आप सामान के प्रत्येक टैब को एक अलग उपयोगकर्ता नियंत्रण में स्थानांतरित करने का प्रयास कर सकते हैं, और फिर आप प्रत्येक टैब के लिए केवल एक ही उपयोगकर्ता नियंत्रण लोड कर रहे हैं। यह नियंत्रण की संख्या को कम नहीं करता है, लेकिन यह इसे थोड़ा और अधिक प्रबंधनीय बनाता है।

लेबल का अन्य "नौकरी" टैब ऑर्डर में अगले नियंत्रण के लिए स्नेही नियंत्रण सक्रियण प्रदान करना है। यदि आप इसका उपयोग नहीं कर रहे हैं, तो आप "धोखाधड़ी" और सभी लेबलों से छुटकारा पाने की कोशिश कर सकते हैं, और कंटेनर के पेंट इवेंट में प्रत्येक नियंत्रण के आगे वाले लेबल को "पेंट" कर सकते हैं। आप लेबल के नियंत्रण को नियंत्रण की टैग प्रॉपर्टी में डाल सकते हैं, और उस पर पेंट कर सकते हैं। जरूरी नहीं कि सबसे बड़ा सुझाव।

उदाहरण:

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint 
    For Each c As Control In Me.Controls 
    If c.Tag IsNot Nothing Then 
     TextRenderer.DrawText(e.Graphics, c.Tag.ToString, Me.Font, _ 
          New Rectangle(c.Left - 100, c.Top, 100, c.Height), _ 
          Color.Black, Color.Empty, TextFormatFlags.VerticalCenter) 
    End If 
    Next 
End Sub 
+0

जेनरेट मेम्बर मेरा जवाब है। मानो या नहीं, मुझे कोई संकेत नहीं था कि वह क्या करता है। धन्यवाद, क्योंकि अब यह मुझे संशोधक संपत्ति के बारे में जानने के लिए प्रेरित करता है। मैं .NET में स्वयं सिखाया गया हूं, (वीबी 6 से आ रहा है) और हर दिन मैं और सीखता हूं। – PaulOTron2000

3

आप आसन्न लेबल के साथ पाठ बॉक्स नियंत्रण का एक बहुत कुछ है, तो आप एक usercontrol दोनों पाठ बॉक्स और लेबल के होते हैं जो बना सकते हैं। उपस्थिति को अनुकूलित करने के लिए आप जो भी गुण पसंद करते हैं उसे जोड़ सकते हैं।

enter image description here

इस तरह के एक आम यूआई पैटर्न है, मैं वास्तव में लगता है कि वी.एस. इस तरह एक नियंत्रण के साथ आना चाहिए।

इसका मतलब यह भी है कि आप नए रूपों को और अधिक तेज़ी से बना सकते हैं क्योंकि आपके पास केवल दो नियंत्रण के लिए प्रत्येक संपादन फ़ील्ड को जोड़ने के लिए एक नियंत्रण है।

यहाँ एक usercontrol का एक और उदाहरण है मेरे पास है - यह सिर्फ दो लेबल है, लेकिन सिद्धांत एक ही है:

enter image description here

यहाँ यह एक फार्म पर कई बार किया जा रहा है:

enter image description here

फॉर्म पर 18 लेबल के बजाय, मेरे पास मेरे उपयोगकर्ता नियंत्रण के 9 उदाहरण हैं।

+0

मुझे लगता है कि एमओ एक्सेस का प्रारंभिक संस्करण एमएस एक्सेस के शुरुआती संस्करण को डेवलपर को ऐसे फॉर्म पर टेक्स्टबॉक्स से लेबल करने की इजाजत देता है, जिसमें डेटाबेस फ़ील्ड के नाम पर डिफॉल्ट लेबल होता है जिसके साथ टेक्स्टबॉक्स संबद्ध था। एक्सेस के बारे में अधिक वांछनीय से कम था, लेकिन इस सुविधा को समझ में आया। – PaulOTron2000

+0

मुझे लगता है कि वीबी शायद वही हो। लेकिन मैंने 15 साल या उससे अधिक के लिए वीबी का उपयोग नहीं किया है, इसलिए मैं इसे कल्पना कर सकता हूं। –

+0

जब तक यह वीबी 1 में नहीं था। मैंने वीबी 1 छोड़ दिया लेकिन मैंने वीबी 2 से वीबी 6 के माध्यम से हर संस्करण का इस्तेमाल किया। (जीडब्ल्यू बेसिक के साथ शुरू, फिर क्विकबासिक पर जो अपने दिन में बहुत प्रभावशाली था।) ओह, मेरे गाव मैं बूढ़ा हूँ! और मुझे लगता है कि आप कह सकते हैं कि मैं बहुत बुनियादी हूं। – PaulOTron2000

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