TableLayoutPanel中的RowStyles和Rows不匹配?

 ab5212502902861 发布于 2023-02-13 21:34

我们隐藏了一个控件TableLayoutPanel.我们一直使用以下代码来隐藏不应该可见的行.

int controlRow = m_panel.GetPositionFromControl(control).Row;

m_panel.RowStyles[controlRow].SizeType = SizeType.Absolute;
m_panel.RowStyles[controlRow].Height = 0;

现在我们已经添加了更多行,突然间我们遇到了索引问题.RowStyles比Rows少.

行格式比行格式更多. Screencap来自调试.

有什么可疑的东西,或者我误解了它的TableLayoutPanel作用?

1 个回答
  • 我试过深入研究这个问题.问题是您没有以正确的方式添加行.要正确添加行,必须确保值RowCount和数量RowStyles相等.您可以Form1.Designer.cs在tableLayoutPanel的自动生成代码中看到这一点.所以你应该做这样的事情:

    //add a new row
    tableLayoutPanel.RowCount++;
    tableLayoutPanel.RowStyles.Add(newRowStyle);
    

    事实上,不匹配并不会导致非常严重的问题.当RowStyles.Count大于实际值时RowCount,所有顶部RowStyles(其数量等于RowCount)将用于设置行的样式,其余的可以看作是reserve.当RowStyles.Count小于实际值时RowCount,会有一些行没有任何样式并且可能会折叠.无论如何使用我上面发布的代码添加新行将帮助您避免任何问题.关键是我们必须确保行数和数量RowStyles相等.

    2023-02-13 21:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有