Hinweis: In WinFormProblem beim Entfernen der Steuerelemente dynamisch
ich konfrontiert Problem in TableLayoutPanel. Ich Hinzufügen und Entfernen der Steuerdynamik mit TableLauoutPanel. Mein Problem ist, wenn ich das Steuerelement in der Mitte entferne (dh ich habe TextBox1, TextBox2 und TextBox3 hinzugefügt und jetzt habe ich TextBox2 entfernt), werden zu diesem Zeitpunkt andere Steuerelemente nicht richtig angepasst. Wenn das letzte Steuerelement (z. B. TextBox3) entfernt wird, wird dessen Größe geändert. Ich habe meinen Code hier angehängt. Was ist das Problem?
/// HIER TBL ist die Table
private void AddText_Click(object sender, EventArgs e)
{
TextBox txt = new TextBox();
txt.MouseDoubleClick += new MouseEventHandler(txt_MouseDoubleClick);
txt.Multiline = true;
txt.Dock = DockStyle.Fill; NEWADD(txt);
}
private void NEWADD(Control ctrl)
{
tbl.RowCount += 1;
tbl.RowStyles.Add(new RowStyle(SizeType.Percent, 100F/tbl.RowStyles.Count));
tbl.Controls.Add(ctrl, 0, tbl.RowStyles.Count - 1);
foreach (RowStyle row in tbl.RowStyles)
{
row.SizeType = SizeType.Percent;
row.Height = 100F/(tbl.RowStyles.Count);
}
}
private void RemoveControl(Control ctrl)
{
tbl.RowCount -= 1;
tbl.Controls.Remove(ctrl);
tbl.RowStyles.Clear();
for (int i = 0; i < tbl.Controls.Count; i++)
{
tbl.RowStyles.Add(new RowStyle(SizeType.Percent, 100F /(tbl.RowStyles.Count +1)));
}
foreach (RowStyle row in tbl.RowStyles)
{
row.SizeType = SizeType.Percent;
row.Height = 100F/(tbl.RowStyles.Count);
}
tbl.Refresh();
}
void txt_MouseDoubleClick(object sender, MouseEventArgs e)
{
RemoveControl(sender as Control);
}