В настоящее время я пытаюсь заполнить 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
}
, а затем удалить все строки на действия, по следующему методу:
public void RemoveRows()
{
for (int row = _rowCount; row >= 0; row--)
{
BibTable.RowStyles.RemoveAt(row);
BibTable.RowCount--;
}
}
Теперь проблема , если я пытаюсь сделать что-нибудь с TableLayoutP
снаружи способа, где инициализируются все строки, он скажет мне:
объекта г eference не установлен в экземпляр объекта.
Что я могу сделать? Есть ли способ получить метод внутри метода (я понимаю, насколько глупо это звучит при наборе текста) или любым другим способом справиться с этой ситуацией?
Какова связь между 'TableLayoutP' и' BibTable'. Я спрашиваю об этом, потому что вы инициализируете 'TableLayoutP' и вы удаляете из' BibTable'. Кажется логичным, если вы добавляете элементы в одну коллекцию, вы не можете удалить их из другого. –