Laden...

Tablelayoutpanel bestimmte Zellen unterstreichen: Linie erscheint nicht bei den untersten Zellen

Erstellt von csharp_benutzer vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.640 Views
C
csharp_benutzer Themenstarter:in
20 Beiträge seit 2013
vor 10 Jahren
Tablelayoutpanel bestimmte Zellen unterstreichen: Linie erscheint nicht bei den untersten Zellen

Hallo,

ich habe ein TableLayoutPanel, das aus 2 Rows und aus 2 Columns besteht (=4 Zellen)

Bespiel:
a b
c d

Nun möchte ich jeweils unter a, b, c und d eine Linie als Rahmen haben.
Mit folgender Code habe ich den Rahmen unter a und b hinbekommen:


        private void tableLayoutPanel2_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
        {
            e.Graphics.DrawLine(new Pen(Color.Blue), new Point(e.CellBounds.X, e.CellBounds.Bottom), new Point(e.CellBounds.Right, e.CellBounds.Bottom));
        }

So schaut das Ergebnis aus:

a b

c d

Ich erwarte eigentlich, dass mir der selbe Code auch einen Rahmen unter c und d einfügt. Das tut er aber nicht. Was mache ich falsch? Für jede Hilfe/Verbesserung würde ich mich sehr freuen.

Das Ganze soll so ausschauen:

a b

c d

4.939 Beiträge seit 2008
vor 10 Jahren

Hallo,

das wird daran liegen, daß du knapp unterhalb des TableLayoutPanels zeichnest.
Verwende mal testweise


e.CellBounds.Bottom - 1 // oder -2 etc.

Evtl. mußt du das TableLayoutPanel in der Höhe vergrößern und den unteren Margin erhöhen, damit du dann die Linien siehst.

C
csharp_benutzer Themenstarter:in
20 Beiträge seit 2013
vor 10 Jahren

Gibts doch nicht! Das lag tatsächlich daran und ich war schon am Verzweifeln. Vielen Dank für deine Hilfe.

Lösung:

Bottom -1

oder

Padding bei Bottom auf 1 setzten