为什么我不能在方法中访问数据?

本文关键字:访问 数据 方法 不能 为什么 | 更新日期: 2023-09-27 18:12:02

我目前正试图通过如下方法填充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
}

,然后通过以下方法删除Action上的所有行:

public void RemoveRows()
{
    for (int row = _rowCount; row >= 0; row--)
    {
        BibTable.RowStyles.RemoveAt(row);
        BibTable.RowCount--;
    }
}

现在的问题是,如果我试图做任何TableLayoutP之外的方法,其中所有行的初始化,它会告诉我:

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

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

为什么我不能在方法中访问数据?

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

为什么不呢:

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

GetRowHeights()中输入字符,返回每行的高度。但是您正在从RowStyles集合中删除,这与第一个集合没有直接关系。我假设GetRowHeights()返回的行数比RowStyles多。

为什么不呢:

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