TableLayoutPanel: Supprimer Des Lignes
J'ai un TableLayoutPanel qui est rempli avec des lignes lors de l'exécution à l'aide d'un fichier texte (chaque ligne du fichier texte, et de le mettre dans les cellules contenues dans les nouvelles lignes).
Code Ressemble à ceci:
public static string UrlList= @"C:\Users\Berisha\Desktop\URLs.txt";
string[] UrlRows = System.IO.File.ReadAllLines(@UrlList);
private void InitPaths()
{
int a = 0;
int c = 1;
while (a < UrlRows.Length-1)
{
//new label
var label = new Label();
label.Dock = DockStyle.Fill;
label.AutoSize = false;
label.Text = UrlRows[a];
label.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
label.Size = new System.Drawing.Size(22, 13);
label.BackColor = System.Drawing.Color.Transparent;
TBP.Controls.Add(label, 3, c); //Add to TableLayoutPanel
a++;
c++;
}
}
Bien que je veux être en mesure de modifier manuellement la source,
j'ai donc écrit une méthode qui permettrait de supprimer tout ce qui est nouveau créé, mais semblent être coincés ici, car il ne fonctionne pas:
private void clearPaths()
{
int c = UrlRows.Length - 1;
while (c <= UrlRows.Length - 1)
{
TBP.RowStyles.RemoveAt(c); //Remove from TableLayoutPanel
c--;
}
}
//Le Code s'Arrête à: TableLayoutPanel.RowStyles.RemoveAt(c);(en cours de Débogage)
//et l'erreur se lit comme suit : "la référence d'Objet n'est pas définie à une instance d'un objet"
Mise à jour: j'ai réussi à sortir de l'Erreur, mon Problème maintenant, après je dis RemoveAt, rien ne semble être enlevé
Quelqu'un sait ce que c'est que je pouvais faire?
a
dans les deux clearPaths
ET InitPaths
, mais est seulement déclaré dans InitPaths
. Même si a
étaient une variable globale, qui j'espère n'est pas avec un nom pareil, il ne semble pas que vous devez être l'incrémentation dans clearPaths
. Je ne vois pas comment il pourrait l'être, mais, car il y aurait un conflit de nom avec votre déclaration de a
dans InitPaths
Accidentellement oublié dans la seconde méthode lors de l'écriture de la question
OriginalL'auteur gbbb | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
J'ai Googlé et Boulimiques une solution à ce problème pendant des JOURS et ne pouvait pas en trouver un. Je suis finalement arrivé à une solution qui fonctionne!
Dans ma solution, je ne veux pas supprimer la première ligne.
OriginalL'auteur Arm0geddon
OriginalL'auteur Corpsekicker
OK, en regardant votre deuxième édition, j'ai supprimé ma réponse et je suis l'ajout de cette nouvelle.
Je doute vraiment que cela fonctionne. Votre boucle while s'exécute jamais.
Je suis pas très sûr de ce que vous voulez faire dans cette méthode, si vous voulez dire à tout enlever, ce que vous aviez initialement aurait travaillé.
OriginalL'auteur tnw