18

WindowsフォームでのTableLayoutPanelの使用。私は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は、AutoSizeとしてSizeTypeを使用しています。同様に、私は33.33として取得しています。ColumnStyleは、SizeTypeをパーセントとして設定し、Size=33.33に設定します。

セルの絶対サイズをピクセル単位で取得する必要があります。

4

2 に答える 2

34

For some odd reason, Microsoft decided to hide those functions from intellisense.

This should work as written:

  TableLayoutPanelCellPosition pos = tableLayoutPanel1.GetCellPosition(button1);
  int width = tableLayoutPanel1.GetColumnWidths()[pos.Column];
  int height = tableLayoutPanel1.GetRowHeights()[pos.Row];
于 2012-12-05T15:06:38.730 に答える