我有一个显示对象的用户控件。该用户控件由以下内容组成:
- A main TableLayoutPanel with 2 rows to separate things in two parts
- A nested TableLayoutPanel containing a "header"
- A label for the name of the object
- Several buttons...
- A second nested TableLayoutPanel containing the members of the object
- Dynamically added user controls...
所有这些控件,行和列都处于AutoSize模式。
表示对象的此用户控件基于JSON文件进行初始化。将子项(即JSON对象的属性)动态添加到第二个嵌套的TableLayoutPanel中。
我不打算提供整个代码,因为阅读时间太长,但是这样添加了儿童:
propertiesTableLayoutPanel.Controls.Add(memberView, 0, propertiesTableLayoutPanel.RowCount - 1);
++propertiesTableLayoutPanel.RowCount;
基本上我总是保持空行。添加子项时,我将其放入此空行,然后通过递增行计数来创建另一个空行。我这样做是为了在添加新行时复制行的样式,但我不确定这是否真的需要。
我的问题是,由于某种未知原因,第二个子用户控件(索引= 1)永远不会显示。它始终是第二个。显示该行,但它似乎是空的。第一个(索引= 0)和以下(索引> 2)正确显示。
我通过调试和记录确保所有子用户控件都正确放置在第二个嵌套的TableLayoutPanel中,并且他们的Visible属性设置为true ,但它没有似乎已经足够了。
我错过了关于款式或其他什么的东西吗?谢谢。
编辑:可能需要对RowStyles执行某些操作,可能还需要行高。当我只有一行时,似乎已经有两种行样式,这很奇怪。
编辑:无论如何,使用AutoSize模式时似乎没有使用行高。
答案 0 :(得分:0)
修复此处:stackoverflow.com/questions/37808238/ 是由于设计师留下的垃圾。一个额外的RowStyle,不应该在那里,可以安全地手动删除。