Hi zusammen,
ich möchte den Zeilenabstand einer checkedListbox (unabhängig von der Schriftart) einstellen. Ich nutze Visual Studio Community 2019 mit .net-Framework 4.7.3 und dementsprechend C# 7.3.
Weiß jemand, wie es geht? (und verrät es mir auch hier 😉 )
Gruß Joerg
Hallo joerg55
Das ist nicht ohne weiteres möglich.
Man kann zwar CheckedListBox überschreiben:
public class CheckedListBoxWithCustomHeight : CheckedListBox
{
private int itemHeight = 40;
[Browsable(true)]
[Category("Behavior")]
public override int ItemHeight { get => this.itemHeight; set => this.itemHeight = value; }
}
Aber die Schrift selbst wird nicht verschoben.
Na ja, der Abstand der Texte ist ja auch entsprechend der Checkboxen. Der müsste nur noch vertikal zentriert zu den Kästchen stehen...
Bekommst du das auch noch hin?
Hallo und willkommen,
du müßtest dann den Text (+ CheckBox) selber zeichnen (Stichwort: OwnerDraw
) - ein paar Anregungen dazu gibt es in Can I use a DrawItem event handler with a CheckedListBox?
Edit: Evtl. wäre eine ListView mit View = View.Details
und CheckBoxes = true
einfacher zu benutzen?
Hi TH69,
Edit: Evtl. wäre eine ListView mit
View = View.Details
undCheckBoxes = true
einfacher zu benutzen?
Das hatte ich auch schon überlegt. Allerdings scheint (mir) das ListView relativ komplex und ich wollte mir die Einarbeitung für später aufheben 😃 .
Kann man denn dort die Zeilenabstände einstellen?
Entweder auch dort eine große Schriftart angeben und dann im DrawItem-Ereignis mit einer kleineren Schriftart zeichnen oder aber eine Dummy-ImageList angeben, s. z.B. C# - ListView Item Spacing (Padding) oder Setting Row Height of ListView.