एक सूची दृश्य में आप प्रत्येक आइटम पर आइकन रख सकते हैं।
विवरण-मोड में देखते समय, आइकन बाएं-अधिकांश कॉलम में दिखाया गया है।मैं ListViewSubItem के लिए आइकन कैसे सेट कर सकता हूं?
क्या मैं किसी अन्य कॉलम में एक आइकन दिखा सकता हूं?
एक सूची दृश्य में आप प्रत्येक आइटम पर आइकन रख सकते हैं।
विवरण-मोड में देखते समय, आइकन बाएं-अधिकांश कॉलम में दिखाया गया है।मैं ListViewSubItem के लिए आइकन कैसे सेट कर सकता हूं?
क्या मैं किसी अन्य कॉलम में एक आइकन दिखा सकता हूं?
ListView
नियंत्रण उप-वस्तुओं में छवियों का समर्थन नहीं करता है। करने के लिए सबसे आसान बात DataGridView
पर स्विच करें और DataGridViewImageColumn
का उपयोग करें। यदि यह संभव नहीं है, तो आपको ListView
नियंत्रण में कस्टम ड्रा समर्थन का उपयोग करके आइकन स्वयं को आकर्षित करने की आवश्यकता होगी। यह सेट करने के लिए ListView.OwnerDraw = true
और ListView.DrawSubItem
और ListView.DrawColumnHeader
ईवेंट को संभाल लें।
private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
// Only interested in 2nd column.
if (e.Header != this.columnHeader2)
{
e.DrawDefault = true;
return;
}
e.DrawBackground();
var imageRect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height);
e.Graphics.DrawImage(SystemIcons.Information.ToBitmap(), imageRect);
}
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
e.DrawDefault = true;
}
इसके लिए कोई .NET समर्थन नहीं है।
।
public class MyListView : ListView
{
protected override void OnDrawSubItem(System.Windows.Forms.DrawListViewSubItemEventArgs e)
{
base.OnDrawSubItem(e);
}
}
उपयोग पी/आह्वान और सूचीदृश्य को LVM_SETITEM संदेश भेजने (आप नियंत्रण निर्माण पर या LVM_SETEXTENDEDLISTVIEWSTYLE के माध्यम से LVS_EX_SUBITEMIMAGES शैली स्थापित करना चाहिए), सबआइटम सूचकांक और इसी छवि सूचकांक निर्दिष्ट करें। आपको डालने वाली प्रत्येक सूची आइटम के लिए आपको इसे करने की आवश्यकता होगी।
ObjectListView एक .NET Winforms ListView के आस-पास एक ओपन सोर्स रैपर है। यह p/invoke रणनीति का उपयोग करते हुए सबिटैम्स पर छवियों का समर्थन करता है कि @ ligget78 का उल्लेख किया गया है। यह ListView के साथ कई अन्य सामान्य समस्याओं को हल करता है।
यह आप एक न्यूनतम प्रयास के साथ बहुत अच्छी लग रही listviews बनाने के लिए अनुमति देता है:
alt text http://objectlistview.sourceforge.net/cs/_images/fancy-screenshot2.png
इस पर एक लूट लें:
http://social.msdn.microsoft.com/forums/en-US/winforms/thread/d25b4ffa-2ea4-43cd-a3ae-8dd0387197ae/
स्वीकार किए जाते हैं जवाब देने के लिए इसके अलावा, आप DrawItem ईवेंट को भी संभालना चाहिए, या यह काम नहीं करेगा।
आइकन "पहले" कॉलम में दिखाया गया है, और यह कुंजीपटल उपसर्ग खोज के लिए भी आधार है। एक संभावित समाधान पहले कॉलम के डिस्प्ले इंडेक्स को किसी और चीज़ पर सेट करके कॉलम को पुन: व्यवस्थित करना हो सकता है।
listView1.Columns[0].DisplayIndex = 1;
निश्चित रूप से
यह केवल यदि आप केवल एक कॉलम में मौजूद आइकन की जरूरत है काम करता है।
क्यों न केवल 'var imageRect = e.Bounds;' यह एक मान प्रकार है, इसलिए मानों की प्रतिलिपि बनाई जा रही है और संदर्भित नहीं किया गया है ताकि उन्हें संभालने में सुरक्षित बनाया जा सके। – ja72
वास्तविक दुनिया के उपयोग में प्रदर्शनी, आप subitem में निहित संरेखण, पैडिंग और/या अतिरिक्त सामग्री के लिए खाते में छवि को समायोजित करना चाहते हैं। –