Någon som har ett tips att få varannan rad färgad i en listView? Mitt förslag är att du lägger till raderna först, och färgar i efterhand. Koden blir enklare då. Notera även att det blir lite mindre att skriva om du använder en temporär variabel av typen ListViewItem när du lägger upp nya rader. :Varannan rad i listview
Jag försöker så här:
<code>
int rad = 0;
this.Text= listBox4.SelectedItem + " innehåller " + antal.ToString() + " melodier";
for(int a=0;a < rader; a++)
{
switch(rad)
{
case 0:
listView4.Items.Add(ds.Tables["frånAlbum"].Rows[a]["ArrNo"].ToString());
listView4.Items[a].SubItems.Add(ds.Tables["frånAlbum"].Rows[a]["Sångtitel"].ToString());
listView4.Items[a].SubItems.Add(ds.Tables["frånAlbum"].Rows[a]["Kategori"].ToString());
listView3.Items[a].BackColor = Color.SeaShell;
rad = 1;
break;
case 1:
listView4.Items.Add(ds.Tables["frånAlbum"].Rows[a]["ArrNo"].ToString());
listView4.Items[a].SubItems.Add(ds.Tables["frånAlbum"].Rows[a]["Sångtitel"].ToString());
listView4.Items[a].SubItems.Add(ds.Tables["frånAlbum"].Rows[a]["Kategori"].ToString());
listView3.Items[a].BackColor = Color.White;
rad = 0;
break;
}
}
</code>
Error:
<code>
Det angivna argumentet hamnade utanför intervallet med giltliga värden.
Parameternamn: 1 är inte ett giltligt värde för dispayIndex.
</code>
Hur jag än försöker så får jag bara fel. Några bra ideer?Sv: Varannan rad i listview
<code>
ListViewItem li=listView1.Items.Add("Bill");
li.SubItems.Add("Flinton");
li=listView1.Items.Add("Donald");
li.SubItems.Add("Reagan");
li=listView1.Items.Add("George");
li.SubItems.Add("Ush");
li=listView1.Items.Add("Harry S");
li.SubItems.Add("Falseman");
li=listView1.Items.Add("Jimmy");
li.SubItems.Add("Farter");
' Den viktiga koden...
for (int i=0;i<listView1.Items.Count;i++)
if (i%2==0)
listView1.Items[i].BackColor=System.Drawing.Color.LightBlue;
' Alternativ om du vill börja med en ofärgad rad :
'for (int i=0;i<listView1.Items.Count;i++)
' if (i%2==1)
' listView1.Items[i].BackColor=System.Drawing.Color.LightBlue;
</code>
På samma sätt kan det vara idé att använda en temporär variabel för DataRow :
<code>
DataRow row=ds.Tables["frånAlbum"].Rows[a];
li=listView1.Items.Add(row["kolumnnamn1"].ToString());
li.SubItems.Add(row["kolumnnamn2"].ToString());
li.SubItems.Add(row["kolumnnamn3"].ToString());
' o s v
</code>