我正在开发 WinForms 应用程序。我有一个 TableLayoutPanel,它有一个添加行的按钮。一开始,有一排。但是当我第一次点击添加时,新行之前有一个很大的偏移量。 看:
哦,添加按钮的代码:
private void manual_packages_add_Click(object sender, EventArgs e) {
static Size MulSize(Size sz, Size accord, int percent) {
static float Percent(float n, int p) => n * (p / 100);
SizeF origF = (SizeF)sz;
SizeF accordF = (SizeF)accord;
origF.Height += Percent(accordF.Height, percent);
return origF.ToSize();
}
TextBox tbx = new() {
Name = $"manual_packages_pkg{manual_nextPkgTbxIndex++}",
Size = new((int)Math.Round(manual_packages_list.ColumnStyles[0].Width),
(int)Math.Round(manual_packages_list.RowStyles[0].Height)),
MaxLength = 34,
BorderStyle = BorderStyle.Fixed3D,
};
Button rm = new() { Name = $"manual_packages_rm{manual_nextPkgTbxIndex}",
Text = "i suffer 💀💀💀💀💀" };
manual_packages_list.Controls.Add(tbx, 0, ++manual_packages_list.RowCount);
manual_packages_list.Controls.Add(rm, 1, manual_packages_list.RowCount);
// sizing
Control? container = tbx.Parent;
bool firstIter = true;
while (true) {
container = firstIter ? container : container.Parent;
if (container == null)
break;
container.Size = MulSize(container.Size, tbx.Size, 100);
firstIter = false;
}
}
引起麻烦的人是 AutoSize 设置为关闭。我启用了它,然后...还有另一个问题。现在按钮关闭了。这是按下按钮后的屏幕截图(代码保持不变):
寻求帮助...