Wysokość itema i ikonki w ListBox

Wysokość itema i ikonki w ListBox
Tumeg
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 687
0

Witam, chciałbym, aby kolejne elementy w ListBoxie miały tą samą wysokość, ale większą niż ta standardowa (powiedzmy, że x4). Napisałem taki kod, i chyba wysokość się zwiększyła, ale tekst z itemków zniknął :|

Kopiuj
listBox1.DrawMode = DrawMode.OwnerDrawVariable;
listBox1.ItemHeight = 50;

I jak umieścić ikone obok tekstu w takim itemie (to jak już naprawię ten znikający tekst) ?

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
0
Kopiuj
listBox1.DrawMode = DrawMode.OwnerDrawVariable;
listBox1.DrawItem += listBox1_DrawItem;
listBox1.ItemHeight = 30;

Do tego handler:

Kopiuj
void listBox1_DrawItem(object sender, DrawItemEventArgs e)
        {
            e.DrawBackground();
            e.Graphics.DrawString((string)listBox1.Items[e.Index], e.Font, new SolidBrush(e.ForeColor), e.Bounds);
            e.DrawFocusRectangle();
        }
Tumeg
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 687
0

To w sumie mi "tylko" tego handlera brakowało, dzięki. I przy okazji jak wyśrodkować tekst w tym itemie, bo mi przylega do górnej krawędzi i niezbyt ładnie to wygląda. No i te ikony jeszcze, wyrysować je normalnie umiem, ale nie w itemie, może jakaś wskazówka ? :)

Tumeg
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 687
0

Dobra, ogarnąłem to sam tylko mam jeden problem - dlaczego ikona rysuje się tylko w pierwszym itemie ? Zrobiłem to "analogicznie" do rysowania tekstu w handlerze, więc powinno rysować dla każdego...
teraz rozmazuje mi się na cały item, ale przynajmniej jest w każdym.

Kopiuj
Icon ic = new Icon("defico.ico");
e.Graphics.DrawIcon(ic, e.Bounds);
dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
1

Bo rysuje ikonkę zawsze od lewego górnego rogu

Kopiuj
e.Graphics.DrawIcon(ic, 10, e.Index * 20);

Powinieneś użyć listview.

Tumeg
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 687
0

A co ma takiego przydatnego listView, czego nie ma listBox (wiadomo, że różnicę znam, ale chodzi o sam kontekst rysowania ikon) ?

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
0

Tak

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.