[VS2005]C# - TableLayoutPanel ->Zellenkoordinaten?

K

Kauabunga

Hallo Forum!

Ich habe ein kleines Problem:

Ich möchte auf einer Oberfläche im Designer Buttons und Labels anordnen. Da müssen dann Rahmen usw drum drum.

Normales Linienzeichen scheint ja der Designer nicht zu unterstützen.

Meine Idee: TableLayoutPanel, die ganzen Teile anordnen. Die OnPaint Methode überladen und dann ausgewählte Zellen nachmalen. So alla Excel. x Zellen einen einzigen Rahmen geben.

So, dazu brauch ich aber die Koordinaten der Zellen, damit ich die nachpinseln kann.
Ich komm aber nicht an die ran. weis jemand wie ich da hin komme?


Klar, ich könnte auch die Linien auch fix programmieren und zeichnen lassen.
Aber: Wenn ich dann im Designer ein Textlabel etwas hin oder her schiebe, muss ich jedesmal den Code nachführen. Das will ich aber nicht. Zumal ich im Designer auf diese art gar nicht sehe wo später mal die Linen verlaufen.

Hoffe es ist klar beschrieben.

Gruß
Ralf
 
Könntest ja beispielsweise mti dem DataGridView machen oder dem DataGrid, je nachdem welche .NET Version du verwendest ..
 
Hm, aber im DataGridView haben die Zellen im Entwicklungsmodus noch immernur die Höhe wie das Teil das drin ist. Ich will die Höhe ja frei wählen.

z.B. 3 Label und 3 Textboxen, und darum dann einen Rahmen und Überschrift

************************************************************
* LABEL Textbox *
* *
************************************************************
* LABEL Textbox *
* *
* LABEL Textbox *
* *
* LABEL Textbox *
* *
************************************************************
Das möchte ich so haben, dass ich im Designer das ganze hübsch Layouten kann.
Entweder so, dass ich die Linien auch im Designer sehe, oder dass ich halt was vergleichbares angezeigt bekomme, dass ich dann in der Laufzeit nachzeichne.
Darum kam ich auf das TableLayoutPanel. Das kann ich prima im Desigenr hin und her schieben bis es mir und acuh anderen passt.

Oder hat jemand einen ganz anderen Ansatz?

Gruß
Ralf
 
Ok, hab es selber hin bekommen. Für alle die es interessiert:

Code:
private void CtrBrettAuswahl_Paint(object sender, PaintEventArgs e)
 {
           //Tabelle nachzeichnen
            Pen Stift = new Pen(Color.Black,2);
            int x, y, w, h;

            //Zeichnen
            x = tblRand.Location.X; //fix
            y = tblRand.Location.Y;
            w = tblRand.Width; //fix
            h = (int)tblRand.RowStyles[0].Height;
            e.Graphics.DrawRectangle(Stift, x, y, w, h);

            //Zeichnen
            y += h;
            h = (int)tblRand.RowStyles[1].Height;
            e.Graphics.DrawRectangle(Stift, x, y, w, h);

            //Eine Zeile leer...nicht nachzeichnen
            y += h;
            h = (int)tblRand.RowStyles[2].Height;
            //e.Graphics.DrawRectangle(Stift, x, y, w, h);

            //Zeichnen
            y += h;
            h = (int)tblRand.RowStyles[3].Height;
            e.Graphics.DrawRectangle(Stift, x, y, w, h);

            //Zeichnen
            y += h;
            h = (int)tblRand.RowStyles[4].Height;
            e.Graphics.DrawRectangle(Stift, x, y, w, h);

            //NeuesBrettAnlegen ->Favoritenliste
            y += h;
            h = (int)tblRand.RowStyles[5].Height;
            e.Graphics.DrawRectangle(Stift, x, y, w, h);
            
            //Zeichen
            y += h;
            h = (int)tblRand.RowStyles[6].Height;
            e.Graphics.DrawRectangle(Stift, x, y, w, h);
}

Trotzdem vielen Dank für die Hilfe.
Gruß
Ralf
 

Neue Beiträge

Zurück