Ian*_*oyd 2 .net desktop-application winforms
我正在尝试以编程方式更改TableLayoutPanel 中的行数(有时需要 4,有时需要 5,很少需要 6)。
不幸的是,更改行数不会使RowStyles集合保持同步,因此您无法设置新添加行的高度。以下测试代码演示了这一事实:
private void button1_Click(object sender, EventArgs e)
{
//TableLayoutPanels start with 2 rows by default.
Debug.Assert(tableLayoutPanel1.RowStyles.Count ==
tableLayoutPanel1.RowCount);
//Cannot remove rows
tableLayoutPanel1.RowCount = 1;
Debug.Assert(tableLayoutPanel1.RowStyles.Count ==
tableLayoutPanel1.RowCount);
}
Run Code Online (Sandbox Code Playgroud)
第二个断言失败。
private void button2_Click(object sender, EventArgs e)
{
//TableLayoutPanels start with 2 rows by default.
Debug.Assert(tableLayoutPanel1.RowStyles.Count ==
tableLayoutPanel1.RowCount);
//Cannot add rows
tableLayoutPanel1.RowCount = 6;
Debug.Assert(tableLayoutPanel1.RowStyles.Count ==
tableLayoutPanel1.RowCount);
}
Run Code Online (Sandbox Code Playgroud)
第二个断言失败。
那么设置RowCounta 属性的正确编程方式是TableLayoutPanel什么?
这个问题在 2005 年被报告给微软,他们承认这是一个错误,但他们“仍在评估我们的选择”微软决定不修复它(“关闭”)。
TableLayoutPanel Rows 和 RowStyles 不对应。
描述
当您创建 tableLayoutPanel 并创建新行时(通过在程序中添加行或设置 RowCount 属性),不会向控件添加新的 RowStyle。此外,如果我添加新的 Row Styles,行数会增加,但不会增加到相同的数字:如果我从两个 Rows 和两个 RowStyles 开始,将 Rowcount 设置为 4,然后添加两个 RowStyles(在设计视图中), Rowcount 已设置为 6。 RowStyles 集合的序数匹配当前 RowCount 似乎更直观。
Microsoft 于 2005 年 10 月 24 日下午 6:07 发表
当我们开始规划 Visual Studio 的下一个版本时,此问题已被重新激活。在接下来的几个月里,我们将重新考虑之前被推迟的反馈。我们欢迎您提出意见并参与此过程。
Microsoft 于 2005 年 6 月 27 日上午 6:49 发表
Microsoft 子状态现在是“已复制”
感谢您报告此错误,我们已经能够重现此问题并正在调查。
谢谢你,Prabhu,VS2005 产品团队。
Microsoft 于 2005 年 6 月 27 日下午 5:55 发表
感谢您报告此问题。这是我们的运行时对象模型中的一个特性,它不能很好地转化为设计时。在运行时,RowCount 和 ColCount 在自动增长方面真正意味着 minRowCount 和 minColCount,因为行/列不需要支持样式。在设计时,我们试图简化它并在样式和行/列之间保持接近 1:1 的对应关系。在这种情况下,您看到的是设计运行时行为。我们已经有一个跟踪此问题的错误,并且仍在此处评估我们的选项。再次感谢您为更好的 Whidbey 做出贡献。
Microsoft 于 2005 年 7 月 6 日下午 3:43 发表
感谢您报告此问题。这是我们选择在设计时不解决的运行时对象模型中的一个特性。在运行时,RowCount 和 ColCount 在自动增长方面真正意味着 minRowCount 和 minColCount,因为行/列不需要支持样式。在设计时,我们通常会尝试简化它,并在样式和行/列之间保持接近 1:1 的对应关系。在具有自动增长的表格布局面板上的 rowSpan 或 colSpan 的情况下,您可能会进入行/行计数/行样式不同步的状态。为避免这种情况,只需先添加您需要的列/行,然后设置控件 *span 属性。谢谢。
Microsoft 于 2005 年 10 月 24 日下午 6:07 发表
当我们开始规划 Visual Studio 的下一个版本时,此问题已被重新激活。在接下来的几个月里,我们将重新考虑之前被推迟的反馈。我们欢迎您提出意见并参与此过程。
-- 视觉工作室团队
| 归档时间: |
|
| 查看次数: |
4511 次 |
| 最近记录: |