दृश्य स्टूडियो में अपने कार्यक्रम के रंग का प्रयोग करें

इस उदाहरण में एक क्वेरी से पैदा हुई इस लेख .

नियंत्रण ColorDialog एक पारंपरिक रंग पैलेट प्रस्तुत करता है, लेकिन सच्चाई यह है कि दृश्य स्टूडियो बहुत अच्छे है और नाम से सभी रंग System.Drawing वस्तु गुणों में परिभाषित के रूप में दिखाता है.

समस्या यह है कि वहाँ कोई हमें रंग की इस सूची में हम देखते हैं कैसे हम खुद constriur कर सकते हैं दिखाने के नियंत्रण को देखते हुए.

उदाहरण के लिए हम एक नई परियोजना और दो रूपों की जरूरत है.

पहले फार्म में डंडों सिर्फ 2 फॉर्म फोन है, जैसा चित्र में दिखाया गया है:

coloresNombre001

बटन और कोड इस प्रकार है:

 BtnColor_Click निजी उप (ByVal प्रेषक के रूप में System.Object, ByVal System.EventArgs के रूप में ई) हैंडल btnColor.Click
 के रूप में नई Form2 मंद vForm2
 (vForm2.ShowDialog)
 अंत उप

और n botoes ListBox और दो (इस रूप में स्वीकार करते हैं और रद्द होगा) के रूप में निम्नलिखित के रूप में:

coloresNombre002

प्रपत्र लोड घटना में ListBox के कुछ गुणों की स्थापना और निम्नलिखित कोड के साथ रंग का नाम ले:

 Form2_Load निजी उप (ByVal प्रेषक के रूप में System.Object, ByVal System.EventArgs के रूप में ई) हैंडल MyBase.Load
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 ListBox1.ItemHeight = 20

 (ListBox1.Items.Clear)
 (ListBox1.BeginUpdate)
 GetType के में Reflection.PropertyInfo (रंग) के रूप में हर गड़बड़ी के लिए. GetProperties (या Reflection.BindingFlags.Static Reflection.BindingFlags.Public)
 ListBox1.Items.Add (pi.Name)
 अगला
 (ListBox1.EndUpdate)
 अंत उप

लोड की पहली पंक्ति में "ListBox1.DrawMode = DrawMode.OwnerDrawFixed" स्थापित है कि नियंत्रण के सभी तत्वों को मैन्युअल रूप से तैयार कर रहे हैं और एक ही ऊंचाई है. इसका ademças है, DrawItem घटना प्रत्येक आइटम से पहले सिर्फ एक शो चलाता है.

ListBox का चयन करें, DrawItem घटना ListBox1 (डिज़ाइन दृश्य में) सेट करने के लिए, हम करने के लिए गुणों को देखने के लिए F4 दबाएँ, और गुण बॉक्स के ऊपर बिजली बोल्ट का चयन करने के लिए घटना है कि नियंत्रण उपलब्ध है , हम DrawItem और हम डबल क्लिक करें. निम्नलिखित छवि कैसे दिखाता है:

coloresNombre003

और इस DrawItem घटना का कोड है

 ListBox1_DrawItem निजी उप (ऑब्जेक्ट, System.Windows.Forms.DrawItemEventArgs के रूप में ByVal ई के रूप में ByVal प्रेषक) ListBox1.DrawItem हैंडल
 आयत = e.Bounds के रूप में मंद आयत

 यदि फिर (e.State और DrawItemState.Selected)
 e.Graphics.FillRectangle (SystemBrushes.Highlight, आयत)
 अन्य
 e.Graphics.FillRectangle (Brushes.White, आयत)
 यदि अंत

 स्ट्रिंग = ListBox1.Items nombreColor (e.Index) के रूप में मंद

 नई SolidBrush ((nombreColor) Color.FromName) के रूप में मंद ख

 rectangulo.Inflate (-16, -2)
 e.Graphics.FillRectangle (ख, नई आयत (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 e.Graphics.DrawRectangle (Pens.Black, नई आयत (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 यदि फिर (e.State और DrawItemState.Selected)
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.White, rectangulo.X + 34 rectangulo.Y 2 +)
 अन्य
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.Black, rectangulo.X + 34 rectangulo.Y 2 +)
 यदि अंत
 अंत उप

अब हम बस बटन कार्यक्रम की जरूरत है eventosde के रूप में निम्नलिखित कोड में दिखाया:

 BtnAceptar_Click निजी उप (ByVal प्रेषक के रूप में System.Object, ByVal System.EventArgs के रूप में ई) हैंडल btnAceptar.Click
 My.Forms.Form1.BackColor = Color.FromName (ListBox1.SelectedItem)
 अंत उप

 BtnCancelar_Click निजी उप (ByVal प्रेषक के रूप में System.Object, ByVal System.EventArgs के रूप में ई) हैंडल btnCancelar.Click
 (Me.Close)
 अंत उप

खैर, आवेदन का परीक्षण करने के लिए ... अगर सब अच्छी तरह से चला गया, इस तरह दिखता है:

coloresNombre004

मैं कुछ परिभाषाओं को छोड़:

Graphics.FillRectangle (विधि): एक समन्वय जोड़ी, चौड़ाई और ऊंचाई के द्वारा निर्दिष्ट आयत के इंटीरियर भरता है.

Graphics.DrawRectangle (विधि) एक समन्वय जोड़ी, चौड़ाई और ऊंचाई के द्वारा निर्दिष्ट आयत ड्रा.

Graphics.DrawString (विधि): निर्दिष्ट पाठ स्ट्रिंग निर्दिष्ट स्थान पर और निर्दिष्ट ब्रश और फ़ॉन्ट वस्तुओं के साथ ड्रा.

उम्मीद है कि इस मदद करता है और आप अपनी परियोजनाओं में उपयोग कर सकते हैं.

11 जवाब "अपने कार्यक्रम में दृश्य स्टूडियो रंग का प्रयोग करें"

  1. Bitacoras.com कहते हैं:

    सूचना Bitacoras.com ...

    Bitacoras.com में दर: इस उदाहरण इस लेख में एक क्वेरी से उठी. ColorDialog नियंत्रण हमें एक पारंपरिक रंग पैलेट tresenta, लेकिन यह tru ई है कि दृश्य स्टूडियो के बहुत अच्छे है और अपने n के लिए सभी रंग दिखाता है .....

  2. Cristyan कहते हैं:

    बहुत अच्छा उदाहरण के लिए, शुक्रिया.

  3. जोस लुइस कहते हैं:

    महान है!
    काफी सराहना की!

  4. ऑस्कर डेनियल कहते हैं:

    ! बहुत अच्छा!
    केवल बात यह है कि मैं काम रद्द बटन था.

  5. Erick कहते हैं:

    पारदर्शी रंग का चयन करने के लिए विफल रहता है, यह हो सकता है? ........... अन्य रंग अगर यह काम करता है

    salu2

    • एलीशा कहते हैं:

      यह है कि किसी प्रपत्र की पृष्ठभूमि रंग के रूप में पारदर्शी रंग लागू नहीं कर सकते हैं, लेकिन अगर अन्य को नियंत्रित करने के लिए लागू है.

      टिप्पणी के लिए धन्यवाद!

  6. gercer89 कहते हैं:

    मेरे जीवन में इस उदाहरण को बचाया ...! लेकिन salu2 के रूप में मैं prpiedades स्क्रीन, जिस पर आप रंग बदलने के देखने को मिलता है क्योंकि यह देता है मुझे "My.Forms.Form1.BackColor." देख रहे हो? धन्यवाद

  7. डिएगो कहते हैं:

    नमस्ते
    मैं एक त्रुटि पहचानकर्ता की उम्मीद बिल्कुल <एक यदि (e.State और DrawItemState. को चुनें तो एड)
    e.Graphics.FillRectangle (SystemBrushes.Highlight, आयत)

    मुझे एफए द्वारा मदद
    Graciass

  8. हेनरी कहते हैं:

    नमस्ते ...
    मैं तकनीक नियंत्रण है कि हवाई अड्डे की तरह होना चाहिए एक अच्छे डिजाइन बनाने के लिए देख रहा हूँ, लेकिन मुझे पता नहीं है और न ही मैं कुछ कृपया अगर तुम मुझे कि anetmano के साथ मदद आपको बहुत बहुत धन्यवाद ...

  9. डेविड कहते हैं:

    इस वेरा, आप इस उदाहरण के लिए बहुत बहुत धन्यवाद. मैं यह मेरी जरूरतों को लागू करने में सक्षम हो जाएगा

    आप मेरिडा, Yucatan से धन्यवाद

टिप्पणी