C# 为什么可以';我不能在方法中获取数据吗?

C# 为什么可以';我不能在方法中获取数据吗?,c#,winforms,delete-row,C#,Winforms,Delete Row,我目前正试图通过以下方法填充一个TableLayoutPanel: private int _rowCount; public void InitPaths() { int c = 1; int a = 1; while (a < _PathRows.Length - 1) { var label = new Label(); // // Label - Format. //

我目前正试图通过以下方法填充一个
TableLayoutPanel

private int _rowCount;
public void InitPaths()
{
    int c = 1;
    int a = 1;

    while (a < _PathRows.Length - 1)
    {
        var label = new Label();
        //
        // Label - Format.
        //
        label.Dock = DockStyle.Fill;
        label.AutoSize = false;
        label.Text = _pfadZeilen[a];
        label.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
        label.Size = new System.Drawing.Size(22, 13);
        label.BackColor = System.Drawing.Color.Transparent;
        TableLayoutP.Controls.Add(label, 3, c);

        //Checkboxen Einfügen
        var cbox = new CheckBox();
        //
        //Checkbox Format.
        cbox.Anchor = System.Windows.Forms.AnchorStyles.None;
        cbox.AutoSize = true;
        cbox.CheckAlign = System.Drawing.ContentAlignment.MiddleCenter;
        cbox.Name = "checkBoxPfad" + a;
        cbox.Size = new System.Drawing.Size(15, 14);
        cbox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
        cbox.UseVisualStyleBackColor = true;
        TableLayoutP.Controls.Add(cbox, 0, c);
        a++;
        c++;

    }

    this._rowCount = BibTable.GetRowHeights().Length; // which seems to be Holding the value only within the method
}
现在的问题是,如果我尝试在初始化所有行的方法之外对
TableLayoutP
执行任何操作,它将告诉我:

对象引用未设置为对象的实例


我能做什么?有没有一种方法可以在一个方法中获取一个方法(我意识到在键入它时听起来有多么愚蠢)或者其他任何方法来处理这种情况?

您正在通过
GetRowHeights()
,返回每行的高度。但是您正在从与第一个集合没有直接关系的
行样式
集合中删除。我假设
GetRowHeights()
返回的行比
RowStyles
返回的行多得多

为什么不:

BibTable.RowCount = 0;
BibTable.RowStyles.Clear();
BibTable.RowCount = 0;
BibTable.RowStyles.Clear();

您正在通过
GetRowHeights()
,返回每行的高度。但是您正在从与第一个集合没有直接关系的
行样式
集合中删除。我假设
GetRowHeights()
返回的行比
RowStyles
返回的行多得多

为什么不:

BibTable.RowCount = 0;
BibTable.RowStyles.Clear();
BibTable.RowCount = 0;
BibTable.RowStyles.Clear();

您好,Martin,thnx在您的帖子中,问题是GetRowHeights()。长度似乎是唯一能够提供正确行数(本例中为23行)的东西,因为我在运行时从文本数据插入行数,但BibTable.RowCount显示只有6行(这是错误的)。下面的链接中有更详细的解释,谢谢你的帮助!属性
行数如何?他应该保持正确的行数。刚刚尝试过,RowCount告诉=6(false)和BibTable.GetRowHeights().Length=23(正确)Martin,我在做了一些上述研究之后,开始使用GetRowHeights(),看起来这是表中唯一一个提供正确行数的,但真正的问题是,我不能删除InitPaths()方法之外的行,我应该在那里做什么呢?
TableLayoutP
BibTable
之间的关系是什么。我这样问是因为您初始化了
TableLayoutP
,并从
BibTable
中删除了。如果你在一个集合中添加项目,你就不能从另一个集合中删除它们。