Привет, я сейчас работаю над окнами, откуда мне нужно будет добавлять и удалять несколько текстовых полей (и лабилей) с помощью нажатия кнопки. Я должен установить его в таблицеLayoutPanel, и после нажатия «Добавить» наклейка и 5 текстовых полей должны появиться в одной строке, а затем, когда я нажимаю «Удалить», они должны исчезнуть, Скрытие не будет работать как Data должны быть взяты из них на более позднем этапе, но это не проблема.C# Проблема с удалением текстового поля из таблицыLayoutPanel
Проблема с удалением (я могу добавить их в порядке, как вы увидите ниже) Я знаю, что происходит, и могу догадаться, почему, но мне нужно найти альтернативное решение>. <
public partial class Form2 : Form
{
int Count = 1;
int rowIndex = 2, colIndex = 1;
Label Label;
TextBox Value;
TextBox Weight;
TextBox Width;
TextBox Height;
TextBox Length;
private void button1_Click(object sender, EventArgs e)
{
if (Count <= 9)
{
Count += 1;
rowIndex += 1;
tableLayoutPanel10.RowCount = +1;
AddLot(Count);
if (Count > 9)
button1.Enabled = false;
}
button2.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
if (Count == 2)
{
tableLayoutPanel10.Controls.Remove(Label);
tableLayoutPanel10.Controls.Remove(Value);
tableLayoutPanel10.Controls.Remove(Weight);
tableLayoutPanel10.Controls.Remove(Width);
tableLayoutPanel10.Controls.Remove(Height);
tableLayoutPanel10.Controls.Remove(Length);
Count -= 1;
rowIndex -= 1;
button2.Enabled = false;
}
else
{
tableLayoutPanel10.Controls.Remove(Label);
tableLayoutPanel10.Controls.Remove(Value);
tableLayoutPanel10.Controls.Remove(Weight);
tableLayoutPanel10.Controls.Remove(Width);
tableLayoutPanel10.Controls.Remove(Height);
tableLayoutPanel10.Controls.Remove(Length);
Count -= 1;
rowIndex -= 1;
button1.Enabled = true;
}
}
private void AddLot(int Count)
{
Label = new Label();
Label.Dock = DockStyle.Fill;
Label.Text = Count.ToString();
Label.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
Value = new TextBox();
Value.Dock = DockStyle.Fill;
Weight = new TextBox();
Weight.Dock = DockStyle.Fill;
Width = new TextBox();
Width.Dock = DockStyle.Fill;
Height = new TextBox();
Height.Dock = DockStyle.Fill;
Length = new TextBox();
Length.Dock = DockStyle.Fill;
tableLayoutPanel10.Controls.Add(Label, colIndex - 1, rowIndex);
tableLayoutPanel10.Controls.Add(Value, colIndex, rowIndex);
tableLayoutPanel10.Controls.Add(Weight, colIndex + 1, rowIndex);
tableLayoutPanel10.Controls.Add(Width, colIndex + 2, rowIndex);
tableLayoutPanel10.Controls.Add(Height, colIndex + 3, rowIndex);
tableLayoutPanel10.Controls.Add(Length, colIndex + 4, rowIndex);
}
}
Все, что происходит, когда я пытаюсь удалить это Последние добавленные строки метки/Textboxes удаляется, а затем только уменьшение RowIndex/счетчик на любых часов после этого.
Любые идеи, как заставить это работать, я соглашусь, что нужно его полностью изменить, но, как я сказал, это должно быть сделано в TableLayoutPanel>. <
Приветствия, Jmaru7
ROWCOUNT = +1 ??? –
ах, опечатка. но это также остатки чего-то, что я пробовал раньше, ничего не меняет LOL – Jmaru7