C# FlowLayoutPanel Zeilen bzw Spalten mergen?

roker002

Commander
Registriert
Dez. 2007
Beiträge
2.079
TableLayoutPanel Zeilen bzw Spalten mergen?

Kann man die Zeilen oder Spalten miteinander in C# auf dem TableLayoutPanel mergen? Also verschmelzen lassen? Ich möchte einige Zellen einfach verbinden lassen wie hier in diesen Beispiel. naja HTML und C# kann man nicht vergleichen, aber gibt es diese Möglichkeit?
 
Zuletzt bearbeitet:
TableLayoutPanel.SetColumnSpan(control, value)
TableLayoutPanel.SetRowSpan(control, value)

Benutzung mit Beispielen der beiden Methoden findest du in der Hilfe vom VS oder Online.
 
control ist das, was sich in der Zelle befindet und nicht das Parent Control vom TableLayoutPanel.

Angenommen du hat Textboxen in deinem Panel, dann würde eine der Textboxen das Control sein, was du über mehrere Zellen (Spalten oder Zeilen) "spannen" willst
 
sehe gerade auf einmal in meinen editor dass ich von da aus auch einstellen kann. hmm ich kann schwören dass es vorhin nicht so war. naja das blöde finde ich aber, wenn ich einen cellborder mache, werden die Zellen nicht verschmolzen. mein control geht über auf die andere Zelle aber Zellenwand bleibt sichtbar.
tablelayoutpanel.jpg

wie auf dem bild dargestellt...
 
Zuletzt bearbeitet:
Schau mal ob du mit den Methoden von oben (SetColumnSpan ...) das selbe Problem hast. Kann sein das die das ganze etwas anders handhaben als die Eigenschaften im Designer. Wäre nicht das erste mal... Ansonsten wirst du wohl oder übel damit leben müssen...
 
ne andere frage zu dem TableLayoutPanel.

Wie ich gesehen habe kann man nicht mehrere Elemente in eine Zelle rein tun. Ist das so korrekt?
 
richtig schade.... da muss MS was dran basteln das man auch mehrere Controls reinhauen kann, sonst sehen ich nicht wirklich ein wie man optimal den LayoutPanel nutzen kann.
 
Welche Ziel willst du mit dem Layoutpanel erreichen? Immerhin kannst du auch programmatisch weitere Zeilen und Spalten hinzufügen. Das LayoutPanel stellt sich für mich nur als eine Art Container dar mit dem die Controls angeordnet werden können.
 
ich wollte einen textbox und einen label drauf packen... damit man weis wofür das feld ist! Da TableLayout ja die Zeilen/Spalten nicht richtig mergen kann kommt es sehr schlecht in frage in eine andere Zeile oder spalte den label oder textbox zu setzen.
 
Da fällt mir spontan folgende Idee ein:
Mach doch ein UserControl auf das du das Label und die Textbox draufpackst, dann fügst du das UserControl in einer Zelle ein und fertig. Wenn du in die UserControl Klasse dann noch 2 Eigenschaften (readonly) jeweils für das Label und die Textbox hinzufügst, die nichts weiter machen als diese beiden Objekte zurück zugeben, dann kannst du auch wunderbar von außerhalb auf diese beiden Controls referenzieren.

BTW: Welche Sprache nimmst du? C# oder VB .Net?
 
Zuletzt bearbeitet:
Hab gerade nochmal etwas mit dem Designer von VS herumgespielt. War Bullshit was ich vorher geschrieben habe. Dein Problem mehrere Controls in eine Zelle eines TableLayoutPanel zu bringen, läßt sich ganz einfach lösen. Pack die 2 Controls (Label und Textbox) auf ein normales Panel und füge dieses Panel einer Zelle im TableLayoutPanel dazu. Alle Controls sind dann ganz normal über den Designer verwendbar, d.h. Eigenschaften lassen sich einstellen usw. Somit brauchst du nicht ein UserControl Klasse erzeugen und kannst mit VS wie gewohnt das ganze bearbeiten. Die Referenzierung hat sich auch erledigt weil alle Objekte innerhalb der Form, wie gewohnt referenziert werden können, z.B.:
VB.Net:
Code:
Me.TextBox1.Text = "ABCD"
oder C#.Net
Code:
this.TextBox1.Text = "ABCD";
 
stimmt, wenn man einen control draufpackt ist das problem gelöst. irgendwie habe ich garnicht dran gedacht!

danke
 
Zurück
Oben