2008-08-05 16 views
27

मेरे पास एक नियंत्रण है जिसे कॉम्बोबॉक्स पर मॉडलिंग किया गया है। मैं नियंत्रण प्रस्तुत करना चाहता हूं ताकि नियंत्रण सीमा मानक विंडोज कॉम्बोबॉक्स की तरह दिखता है। विशेष रूप से, मैंने एमएसडीएन दस्तावेज़ीकरण का पालन किया है और नियंत्रण की सभी प्रतिपादन नियंत्रण सही होने पर प्रतिपादन को छोड़कर सही है।दृश्य शैलियों के साथ कॉम्बोबॉक्स की तरह दिखने के लिए नियंत्रण कैसे प्रस्तुत करें?

बस स्पष्ट होने के लिए, यह दृश्य शैलियों सक्षम सिस्टम के लिए है। साथ ही, नियंत्रण के सभी हिस्सों को एक अक्षम नियंत्रण के चारों ओर सीमा को छोड़कर ठीक से प्रस्तुत किया जाता है, जो अक्षम कॉम्बोबॉक्स सीमा रंग से मेल नहीं खाता है।

मैं VisualStyleRenderer कक्षा का उपयोग कर रहा हूं। MSDN ComboBox नियंत्रण से पाठ बॉक्स हिस्सा है, लेकिन एक मानक विकलांग पाठ बॉक्स और एक मानक विकलांग ComboBox थोड़ा अलग ढंग से आकर्षित (एक एक हल्के भूरे रंग सीमा है, अन्य एक हल्के नीले रंग की सीमा) के लिए VisualStyleElement.TextBox तत्व उपयोग करने का सुझाव ।

मैं अक्षम राज्य में नियंत्रण का सही प्रतिपादन कैसे प्राप्त कर सकता हूं?

उत्तर

1

इस के लिए ControlPaint विधियों में से कोई भी उपयोगी है? मैं आमतौर पर कस्टम-रेंडर नियंत्रणों के लिए उपयोग करता हूं।

8

मैं अगर यह है कि आप क्या देख रहे हैं, लेकिन आप System.Windows.Forms.VisualStyles-नाम स्थान में VisualStyleRenderer की जांच करनी चाहिए 100% यकीन नहीं है।

  1. VisualStyleRenderer class (MSDN)
  2. How to: Render a Visual Style Element (MSDN)
  3. VisualStyleElement.ComboBox.DropDownButton.Disabled (MSDN)

यदि उपयोगकर्ता दृश्य शैलियों सक्षम नहीं है (के बाद से VisualStyleRenderer काम नहीं करेगा वह/वह हो सकता है कि 'क्लासिक मोड' या विंडोज एक्सपी से पहले एक ऑपरेटिव सिस्टम चल रहा हो) आपको हमेशा कंट्रोलपेंट क्लास में फॉलबैक होना चाहिए।

// Create the renderer. 
if (VisualStyleInformation.IsSupportedByOS 
    && VisualStyleInformation.IsEnabledByUser) 
{ 
    renderer = new VisualStyleRenderer(
     VisualStyleElement.ComboBox.DropDownButton.Disabled); 
} 

और फिर जब ड्राइंग इस तरह कार्य करें:

if(renderer != null) 
{ 
    // Use visual style renderer. 
} 
else 
{ 
    // Use ControlPaint renderer. 
} 

आशा है कि यह मदद करता है!

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

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