Подтвердить что ты не робот

Получить высоту и ширину ячейки TableLayoutPanel в Windows Forms

Использование TableLayoutPanel в Windows Forms. Я использую RowStyles и ColumnStyles с SizeType как AutoSize и Percent соответственно. Мне нужно узнать абсолютную высоту и ширину ячейки, в которой размещен определенный элемент управления.

TableLayoutPanelCellPosition pos = tableLayoutPanel1.GetCellPosition(button1);
int height = (int)tableLayoutPanel1.RowStyles[pos.Row].Height;
int width = (int)tableLayoutPanel1.ColumnStyles[pos.Column].Width;

Выше, я получаю высоту как 0. RowStyle с SizeType как AutoSize. Точно так же я получаю 33.33. ColumnStyle задается с SizeType как Percent и Size = 33.33.

Мне нужно получить абсолютный размер в пикселях для ячейки.

4b9b3361

Ответ 1

По какой-то нечетной причине Microsoft решила скрыть эти функции от intellisense.

Это должно работать как написано:

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