C # listView, मैं कॉलम 2, 3 और 4 आदि में आइटम कैसे जोड़ूं?


106

मेरे listViewनियंत्रण में कॉलम 1 में आइटम जोड़ने के लिए ( Winform) मैं उपयोग कर रहा हूं listView1.Items.Add, यह ठीक काम करता है लेकिन मैं कॉलम 2 और 3 आदि में आइटम कैसे जोड़ूं?


8
+1: अच्छा सवाल। ListView नियंत्रण का यह हिस्सा बहुत ही भ्रामक और अनपेक्षित है। कभी-कभी मुझे लगता है कि वे डेवलपर्स @ MS
Mehdi LAMRANI

1
@ मायका: उपयोगकर्ता से मजबूत जीयूआई डिजाइन की जटिलता को दूर करना आसान नहीं है।
क्रिस्टोफर बर्मन

1
(वह आवाज़ मेरे सिर में कम गश्त करती है, क्षमा करें!)
क्रिस्टोफर बर्मन

जवाबों:


134

इसे करने के कई तरीके हैं, लेकिन यहां एक समाधान है (4 कॉलम के लिए)।

string[] row1 = { "s1", "s2", "s3" };
listView1.Items.Add("Column1Text").SubItems.AddRange(row1);

और एक अधिक क्रिया तरीका यहाँ है:

ListViewItem item1 = new ListViewItem("Something");
item1.SubItems.Add("SubItem1a");
item1.SubItems.Add("SubItem1b");
item1.SubItems.Add("SubItem1c");

ListViewItem item2 = new ListViewItem("Something2");
item2.SubItems.Add("SubItem2a");
item2.SubItems.Add("SubItem2b");
item2.SubItems.Add("SubItem2c");

ListViewItem item3 = new ListViewItem("Something3");
item3.SubItems.Add("SubItem3a");
item3.SubItems.Add("SubItem3b");
item3.SubItems.Add("SubItem3c");

ListView1.Items.AddRange(new ListViewItem[] {item1,item2,item3});

65

आप ListView की तरह आइटम / उप-आइटम जोड़ सकते हैं :

ListViewItem item = new ListViewItem(new []{"1","2","3","4"});
listView1.Items.Add(item);

लेकिन मुझे संदेह है कि आपकी समस्या व्यू टाइप के साथ है । इसे विवरण में डिजाइनर में सेट करें या कोड में निम्नलिखित करें:

listView1.View = View.Details;

2
"ListView1.FullRowSelect = true" का उपयोग करना भी बहुत महत्वपूर्ण है ... अन्यथा केवल कॉलम 1 क्लिक करने योग्य है। काश, मैं यह पहले से जानता होता! इसने मुझे एक टन काम बचाया होगा।
जॉन हेनकेल

वास्तव में listView1.View के बारे में टिप्पणी ने मेरी मदद की! Thnx!
देव.जाप

7
 private void MainTimesheetForm_Load(object sender, EventArgs e)
        {
            ListViewItem newList = new ListViewItem("1");
            newList.SubItems.Add("2");
            newList.SubItems.Add(DateTime.Now.ToLongTimeString());
            newList.SubItems.Add("3");
            newList.SubItems.Add("4");
            newList.SubItems.Add("5");
            newList.SubItems.Add("6");
            listViewTimeSheet.Items.Add(newList);

        }

7

यहाँ listview ऑब्जेक्ट और listviewItem ऑब्जेक्ट पर msdn प्रलेखन है।
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx

मैं अत्यधिक अनुशंसा करता हूं कि आप कम से कम समय के लिए .net फ्रेमवर्क से आपके द्वारा उपयोग की जाने वाली किसी भी ऑब्जेक्ट पर दस्तावेज़ को स्किम करने का समय निकालें। जबकि प्रलेखन कुछ समय में बहुत खराब हो सकता है, यह अभी भी अमूल्य है, खासकर जब आप इस तरह की स्थितियों में भाग लेते हैं।

लेकिन जैसा कि जेम्स एटकिन्सन ने कहा कि यह बस एक उप-सूची में उप-विषय जोड़ने की बात है, जैसे:

ListViewItem i = new ListViewItem("column1");
i.SubItems.Add("column2");
i.SubItems.Add("column3");

4

अपनी समस्या के लिए इस तरह का उपयोग करें:

ListViewItem row = new ListViewItem(); 
row.SubItems.Add(value.ToString()); 
listview1.Items.Add(row);

0

एक लाइन जो मैंने बनाई है और यह काम करती है:

listView1.Items.Add(new ListViewItem { ImageIndex = 0, Text = randomArray["maintext"], SubItems = { randomArray["columntext2"], randomArray["columntext3"] } });

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.