我需要找出放置按钮的单元格的高度和宽度。 RowStyles和ColumnStyles都设置为Percent,TableLayoutPanel的Dock为Fill,以及按钮的Dock。

TableLayoutPanelCellPosition pos = tableLayoutPanel1.GetCellPosition(button1);
int width = tableLayoutPanel1.GetColumnWidths()[pos.Column];
int height = tableLayoutPanel1.GetRowHeights()[pos.Row];


但这是行不通的。我收到以下错误:


  “ 中发生了类型为'System.IndexOutOfRangeException'的未处理的异常”
  
  附加信息:在数组范围之外的索引。”


我认为问题是因为我的应用程序适用于.NET 3.5(并且无法获得更高的版本)。
那么,如何获取单元格的高度和宽度?

最佳答案

我认为问题是button1不在tableLayoutPanel1中。
因此调用tableLayoutPanel1.GetCellPosition(button1)会导致(-1,-1)和
int width = tableLayoutPanel1.GetColumnWidths()[-1];绝对抛出IndexOutOfRangeException

10-08 09:02