从TableLayoutPanel单元格获取高度和宽度

时间:2015-02-17 09:23:00

标签: c# .net winforms cell tablelayoutpanel

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

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

但它不起作用。我收到以下错误:

  

“< my program name.exe>

中发生了'System.IndexOutOfRangeException'类型的未处理异常      

附加信息:索引超出数组范围。“

我认为问题是因为我的应用程序适用于.NET 3.5(并且不能更高) 那么如何获得单元格的高度和宽度呢?

1 个答案:

答案 0 :(得分:1)

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