Laden...

Zeilenabstand checkedListbox .net-Framework 4.7.3

Erstellt von joerg55 vor 15 Tagen Letzter Beitrag vor 15 Tagen 136 Views
j
joerg55 Themenstarter:in
13 Beiträge seit 2023
vor 15 Tagen
Zeilenabstand checkedListbox .net-Framework 4.7.3

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

A
746 Beiträge seit 2007
vor 15 Tagen

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.

j
joerg55 Themenstarter:in
13 Beiträge seit 2023
vor 15 Tagen

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?

4.839 Beiträge seit 2008
vor 15 Tagen

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?

j
joerg55 Themenstarter:in
13 Beiträge seit 2023
vor 15 Tagen

Hi TH69,

Edit: Evtl. wäre eine ListView mit View = View.Details und CheckBoxes = 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?

4.839 Beiträge seit 2008
vor 15 Tagen

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.