Je génère des contrôles pour une nappabilité de manière dynamique. J'ai un bouton Supprimer dans chaque ligne. Lorsque je clique sur cela, cette ligne doit être supprimée. Je n'ai pas montré le code pour ajouter des zones de texte similaires à ci-dessus. Je peux obtenir le numéro de ligne du bouton cliqué. Utilisation de cela, comment supprimer toutes les commandes de cette ligne. P> Private Sub DeleteRow(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim currentRow As Integer = CType(CType(sender, Button).Parent, TableLayoutPanel).GetRow(CType(sender, Button))
'Using this currentRow, how to delete this Row
End Sub
3 Réponses :
Fondamentalement, vous devez:
Voici le code VB.NET pour faire de même. p>
public static void RemoveRow(this TableLayoutPanel panel, int rowIndex) { panel.RowStyles.RemoveAt(rowIndex); for (int columnIndex = 0; columnIndex < panel.ColumnCount; columnIndex++) { var control = panel.GetControlFromPosition(columnIndex, rowIndex); panel.Controls.Remove(control); } for (int i = rowIndex + 1; i < panel.RowCount; i++) { for (int columnIndex = 0; columnIndex < panel.ColumnCount; columnIndex++) { var control = panel.GetControlFromPosition(columnIndex, i); panel.SetRow(control, i - 1); } } panel.RowCount--; }
@emaillenin: merci pour la traduction à vb.net
Pourquoi ceux-ci doivent-ils supprimer le rowstyle?
En plus des réponses de Johann et EMAILLENININ, vous devez modifier la ligne suivante
if (control != null) panel.SetRow(control, i - 1);
Pourquoi ce travail tant difficile ... Utilisation TableLayOntPanel.Controls.Clear () P>
Cela effacera le contenu du panneau de table p>
Qui est pas i> ce que l'OP demandait à faire.