[C#] ListView - kolorowanie wierszy

0

Jak zrobić kolorowanie wierszy dla ListView - np mam listę z SingleSelection i na kliku chce zaznaczyć wiersz na jakiś kolor

jak na razie próbuję

public partial class ColorListView:ListView 
    {
      public ColorListView()
      {
        this.OwnerDraw = true;
        this.DoubleBuffered = true; 

        SetStyle(ControlStyles.DoubleBuffer, true);
        //SetStyle(ControlStyles.UserPaint, true);
        SetStyle(ControlStyles.AllPaintingInWmPaint, true); 
      }

      protected override void OnClick(EventArgs e)
      {
          base.OnClick(e);
      }
      protected override void WndProc(ref Message m)
      {
         
          base.WndProc(ref m);
      }
    
    }

w ten sposób - czyli tworzę, obiekt -ColorListView- przypisuję właściwości itp itd, ale nie wiem co i jak dalej na jakie zdarzenie, jaki komunikat systemowy obsłużyć, nie mam pojęcia jak to zrobić, aby wiersz był innego koloru niż reszta

0
            this.listView1.Items[0].ForeColor = Color.Red; //pierwszy wierszy bedzie mial czerwona czcionke
            this.listView1.Items[0].BackColor = Color.Black; //pierwszy wiersz bedzie mial czarne tlo
0

dzięki za odpowiedź

ale kolejny problem

jak się dostac do klikniętego elementu?

0
juzwa napisał(a)

dzięki za odpowiedź

ale kolejny problem

jak się dostac do klikniętego elementu?

jakoś sobie poradziłem

aby było wszystko w tej klasie (może kiedyś jak coś więcej będe o C# wiedział się przyda do rozszerzenia)

 protected override void OnClick(EventArgs e)
      {
          Point p = new Point();
          ListViewItem lvi = new ListViewItem();
          p = this.PointToClient(Cursor.Position);
          for (int i = this.Items.Count - 1; i >= 0; i--)
              this.Items[i].BackColor = Color.White;
          lvi = this.GetItemAt(p.X, p.Y);
          if (lvi != null)
          {
              lvi.BackColor = Color.FromArgb(159,212,255);
          }  
          base.OnClick(e);
      }

1 użytkowników online, w tym zalogowanych: 0, gości: 1