gpt4 book ai didi

c# - 为什么 12 X 8.33 似乎等于大约 105?

转载 作者:行者123 更新时间:2023-11-30 12:49:18 26 4
gpt4 key购买 nike

在我的 TableLayoutPanel 中,我动态添加了十二行(和几列)。当我将 TableLayoutPanel 的 Rows 集合设置为 Autosize 时,将生成第 12 行,但不会显示。我把它改成了百分比,每行得到 8.33%(我实际上把它设置为 8,它自动变成了 8.33)。

所以肉眼看应该是完美的 (99.99999999%),但是现在第十二行比其他行有更多空间,第 16 列相同,所以 TableLayoutPanel 在底部和右侧有“死空间”,最后一行中的标签与相邻列中的文本框不对齐。

如果有人有兴趣查看实际代码:

private void AddControlsToPlatypusTableLayoutPanel()
{
string lblName;
string txtbxName;
int ColNum = 0;
int RowNum = 0;
int LoopCounter = 1;
DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);

while (LoopCounter <= 96) {
// Create the Label
lblName = string.Format("label{0}", LoopCounter);
var lbl = new Label() {
Name = lblName,
Dock = DockStyle.Fill,
Margin = new Padding(),
TextAlign = ContentAlignment.MiddleCenter,
Text = dt.ToString("HH:mm")
};
tableLayoutPanelPlatypus.Controls.Add(lbl, ColNum, RowNum);

// Create the TextBox
txtbxName = string.Format("textBox{0}", LoopCounter);
var txtbx = new TextBox() {
Name = txtbxName, Dock = DockStyle.Fill, Margin = new Padding()
};
tableLayoutPanelPlatypus.Controls.Add(txtbx, ColNum + 1, RowNum);

dt = dt.AddMinutes(15);
RowNum++;
LoopCounter++;
// Move over if at the bottom
if (RowNum == 12) {
ColNum = ColNum + 2;
RowNum = 0;
}
}
}

更新

通过微调大小和位置,我可以让它看起来不错,但现在我要么不得不忍受它周围的垫子,要么改变表单和所有其他控件的大小,或者其中的许多控件, 反正。所以我仍然认为百分比没有像人们期望的那样计算有点不正常。我知道,我知道:WPF。但目前这不是一个选项。

最佳答案

如果您将其设置为 8,则 8*12 得出 84%,剩余 16% 将容纳在最后一行,同样的情况也适用于最后一列。所以你需要将它定义为 100/12 = 8.33%。如果你让每一行有 8.33%,最后一行有 8.37%,这看起来会很好。无论是行还是列,您都需要 100% 完成。或者您可以改用固定大小。如果您想要可变大小的表格,请确保您没有定义表格大小,行高和列宽动态定义表格大小。

关于c# - 为什么 12 X 8.33 似乎等于大约 105?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11944252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com