Мне нужно узнать высоту и ширину ячейки, в которой я разместил кнопку. RowStyles и ColumnStyles оба установлены в Percent, TableLayoutPanel's Dock - Fill, а также Dock кнопки.Получить высоту и ширину из ячейки TableLayoutPanel
TableLayoutPanelCellPosition pos = tableLayoutPanel1.GetCellPosition(button1);
int width = tableLayoutPanel1.GetColumnWidths()[pos.Column];
int height = tableLayoutPanel1.GetRowHeights()[pos.Row];
Но это не работает. Я получаю следующее сообщение об ошибке:
"An unhandled exception of type 'System.IndexOutOfRangeException' occurred in < my program name.exe >
Additional information: Index outside of bounds of array."
Я думаю, что проблема в том, что мое приложение для .NET 3.5 (и не может получить какой-либо выше).
Как мне получить высоту и ширину ячейки?
использовать 'GetPositionFromControl' вместо' GetCellPosition' и сообщить нам результат – dotctor
попытаться отладить возвращаемое tableLayoutPanel1.GetColumnWidths(). Я думаю, что это исключение выбрано потому, что pos.column больше границы массива tableLayoutPanel1.GetColumnWidths(). То же самое со строками. – puko
вы уверены, что 'button1' находится в' tableLayoutPanel1'? если вы не получаете -1 для 'pos.Column' и' pos.Row', и это приводит к 'IndexOutOfRangeException' – dotctor