実行時にテキスト ファイルを使用して行で埋められる TableLayoutPanel があります (テキスト ファイルから各行を取得し、新しい行に含まれるセルに配置します)。コードは次のようになります。
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++;
}
}
ソースを手動で編集できるようにしたいので、新しく作成されたものをすべて削除するメソッドを書きましたが、機能しないため、ここでスタックしているようです:
private void clearPaths()
{
int c = UrlRows.Length - 1;
while (c <= UrlRows.Length - 1)
{
TBP.RowStyles.RemoveAt(c); //Remove from TableLayoutPanel
c--;
}
}
// コードは次の時点で停止します: TableLayoutPanel.RowStyles.RemoveAt(c);(デバッグ中) // そして、エラーが表示されます: 「オブジェクト参照がオブジェクトのインスタンスに設定されていません」 更新: エラーから抜け出すことができました。私の問題は、私がRemoveAtと言った後、何も削除されていないよう です私ができることを誰か知っていますか?