1

私は現在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問題は、すべての行が初期化されるメソッドの外側で何かをしようとすると、次のように表示されることです。

オブジェクト参照がオブジェクトのインスタンスに設定されていません。

私に何ができる?メソッド内にメソッドを取得する方法はありますか (入力しているときにそれがどれほど愚かに聞こえるかを理解しています)、またはこの状況に対処する他の方法はありますか?

4

2 に答える 2

0

GetRowHeights()各行の高さを返しながら、 をイタリングしています。RowStylesただし、最初のコレクションとは直接関係のないコレクションから削除しています。GetRowHeights()持っているよりもはるかに多くの行を返すと思いますRowStyles

なぜだめですか:

BibTable.RowCount = 0;
BibTable.RowStyles.Clear();
于 2013-05-04T13:56:44.783 に答える
0

GetRowHeights()各行の高さを返しながら、 をイタリングしています。RowStylesただし、最初のコレクションとは直接関係のないコレクションから削除しています。GetRowHeights()持っているよりもはるかに多くの行を返すと思いますRowStyles

なぜだめですか:

BibTable.RowCount = 0;
BibTable.RowStyles.Clear();
于 2013-05-04T13:50:44.090 に答える