क्या सी # में कॉम्बोबॉक्स आइटम को प्रारूपित करना संभव है? उदाहरण के लिए, मैं एक वस्तु को बोल्ड कैसे करूँगा, इसके पाठ का रंग बदल सकता हूं आदि?कॉम्बोबॉक्स आइटम के प्रारूप को बदलना
उत्तर
कस्टम ड्राइंग के साथ अपने स्वयं ComboBox बनाने के साथ आप इस जिन्हें आप मैन्युअल DrawItem घटना का उपयोग कर आइटम आकर्षित करने के लिए अनुमति देता है DrawModeOwnerDrawFixed
को निर्धारित करके कर सकते हैं।
comboBox1.DrawMode = DrawMode.OwnerDrawFixed;
comboBox1.DrawItem += new DrawItemEventHandler(comboBox1_DrawItem);
private void comboBox1_DrawItem(object sender, DrawItemEventArgs e) {
Font font = comboBox1.Font;
Brush brush = Brushes.Black;
string text = comboBox1.Items[e.Index];
if (you want bold)
font = new Font(font, FontStyle.Bold);
if (you want green)
brush = Brushes.Green;
e.Graphics.DrawString(text, font, brush, e.Bounds);
}
हाँ, पर See here on MSDN
नहीं, ऐसा करने के लिए कोई अंतर्निहित संपत्ति नहीं है। आपको अपना नियंत्रण बनाना होगा और प्रतिपादन को ओवरराइड करना होगा।
इस पोस्ट के रूप में पुराना है, मैंने इसे खोजने के लिए शुरुआती बिंदु के रूप में उपयोगी पाया लेकिन @Paul द्वारा here दिखाए गए तरीके का उपयोग करके बेहतर परिणाम प्राप्त कर लिया।
यहां कोड है जिसे मैं सशर्त रूप से कॉम्बो बॉक्स में आइटम बनाने के लिए उपयोग करता हूं, मुझे लगता है कि इस प्रश्न के लिए सही उत्तर दिया गया जवाब अजीब व्यवहार है - जब आप किसी आइटम पर होवर करते हैं तो थोड़ा बोल्ड हो जाता है और इस तरह रहता है अगर इसे फिर से खींचा जा रहा है। अधिक स्वभाविक रूप में इस कोड को परिणाम:
private void ComboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index == -1)
return;
ComboBox combo = ((ComboBox)sender);
using (SolidBrush brush = new SolidBrush(e.ForeColor))
{
Font font = e.Font;
if (/*Condition Specifying That Text Must Be Bold*/)
font = new System.Drawing.Font(font, FontStyle.Bold);
e.DrawBackground();
e.Graphics.DrawString(combo.Items[e.Index].ToString(), font, brush, e.Bounds);
e.DrawFocusRectangle();
}
}
बस जवाब दान द्वारा आपूर्ति में जोड़ने के लिए, मत भूलना कि तुम सिर्फ सादा तार के साथ कोई ComboBox की तुलना में एक डेटा स्रोत के लिए सूची, बाध्य किया है बल्कि , आप combo.Items[e.Index].ToString()
का उपयोग कर प्रविष्टि को फिर से नहीं ले पाएंगे।
उदाहरण के लिए, आपने कॉम्बोबॉक्स को डेटाटेबल में बाध्य कर दिया है, और दान के उत्तर में कोड का उपयोग करने का प्रयास करें, तो आप केवल System.Data.DataRowView
युक्त कॉम्बोबॉक्स के साथ समाप्त हो जाएंगे, क्योंकि सूची में प्रत्येक आइटम एक नहीं है स्ट्रिंग, यह DataRowView है।
इस मामले में कोड निम्नलिखित की तरह कुछ होगा:
private void ComboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index == -1)
return;
ComboBox combo = ((ComboBox)sender);
using (SolidBrush brush = new SolidBrush(e.ForeColor))
{
Font font = e.Font;
DataRowView item = (DataRowView)combo.Items[e.Index];
if (/*Condition Specifying That Text Must Be Bold*/) {
font = new System.Drawing.Font(font, FontStyle.Bold);
}
else {
font = new System.Drawing.Font(font, FontStyle.Regular);
}
e.DrawBackground();
e.Graphics.DrawString(item.Row.Field<String>("DisplayMember"), font, brush, e.Bounds);
e.DrawFocusRectangle();
}
}
कहाँ "DisplayMember"
फ़ील्ड का नाम सूची (ComboBox1.DisplayMember
संपत्ति में सेट) में प्रदर्शित किया जा रहा है।
- 1. खाली आइटम के साथ कॉम्बोबॉक्स?
- 2. स्टाइलिंग डब्ल्यूपीएफ कॉम्बोबॉक्स आइटम
- 3. कॉम्बोबॉक्स ड्रॉप डाउन सूची को कैसे सबसे बड़ा आइटम फिट करने के लिए आकार बदलना है?
- 4. डाटाबेस डब्ल्यूपीएफ कॉम्बोबॉक्स 'नई ...' आइटम
- 5. कॉम्बोबॉक्स
- 6. कॉम्बोबॉक्स
- 7. कॉम्बोबॉक्स चयनित आइटम हाइलाइट रंग सेट करें
- 8. कॉम्बोबॉक्स आइटम खाली लेकिन डेटासोर्स पूर्ण
- 9. कॉम्बोबॉक्स आइटम रीफ्रेश करें, सबसे आसान तरीका
- 10. कॉम्बोबॉक्स
- 11. बूटस्ट्रैप ड्रॉपडाउन आइटम के पाठ रंग को बदलना
- 12. कॉम्बोबॉक्स
- 13. WPF: कॉम्बोबॉक्स
- 14. एक कॉम्बोबॉक्स
- 15. WPF कॉम्बोबॉक्स
- 16. डब्ल्यूपीएफ कॉम्बोबॉक्स
- 17. कॉम्बोबॉक्स
- 18. दिनांक प्रारूप को "% d /% m /% y" में बदलना
- 19. कॉम्बोबॉक्स
- 20. कॉम्बोबॉक्स
- 21. एक कॉम्बोबॉक्स
- 22. डाटाबेस डब्ल्यूपीएफ कॉम्बोबॉक्स
- 23. WPF IsEditable = ऑब्जेक्ट से भरा सही कॉम्बोबॉक्स चयनित आइटम
- 24. .NET WinForms कॉम्बोबॉक्स, समान आइटम, और चयनित इंडेक्स चेंजेड इवेंट
- 25. कॉम्बोबॉक्स में चयनित आइटम की रंगीन हाइलाइटिंग रोकें?
- 26. चेकबॉक्स का कॉम्बोबॉक्स?
- 27. कॉम्बोबॉक्स व्यवहार
- 28. तत्वों के क्रम को बदलना
- 29. साफ़ कॉम्बोबॉक्स चयनित टेक्स्ट
- 30. पायथन डॉकस्ट्रिंग को बदलना