Gibt es eine Möglichkeit, alle Steuerelemente aus einer Zeile in TableLayoutPanel zu entfernen?

8

Ich erstelle Steuerelemente für ein TableLayoutPanel dynamisch. Ich habe eine Lösch-Schaltfläche in jeder Zeile. Wenn ich darauf klicke, muss diese Zeile entfernt werden.

%Vor%

Ich habe den Code zum Hinzufügen von Textfeldern, die ähnlich wie oben sind, nicht angezeigt. Ich kann die Zeilennummer der angeklickten Schaltfläche abrufen. Verwenden Sie dies, um alle Steuerelemente aus dieser Zeile zu entfernen.

%Vor%     
emaillenin 01.06.2011, 13:42
quelle

3 Antworten

20

Grundsätzlich müssen Sie:

  • Holen Sie sich die Liste der Steuerelemente aus dieser Zeile und löschen Sie sie aus dem TLP
  • Entfernen Sie den entsprechenden Zeilenstil aus dem TLP
  • Legen Sie den neuen Zeilenindex für jedes Steuerelement in jeder Zeile hinter dem gelöschten
  • fest
  • Verringern Sie den RowCount

Hier ist der VB.NET-Code, um das Gleiche zu tun.

%Vor%

Hier ist eine C # -Erweiterungsmethode, die das für Sie erledigt.

%Vor%     
Johann Blais 01.06.2011, 13:49
quelle
3

Zusätzlich zu den Antworten von Johann und emaillenin sollten Sie die folgende Zeile ändern

%Vor%

Zu diesem

%Vor%

Leere Felder und auch übergreifende Steuerelemente verursachen hier einen Fehler, wenn keine Überprüfung auf Null erfolgt.

    
WillMcKill 11.08.2011 10:47
quelle
-7

Warum so viel harte Arbeit ... Benutzen tableLayoutpanel1.Controls.Clear ()

Dies löscht den Inhalt des Tabellenpanels

    
aravindan 12.02.2013 06:10
quelle

Tags und Links