2012-12-05 7 views
14

Verwenden eines TableLayoutPanel in Windows Forms. Ich verwende RowStyles und ColumnStyles mit SizeType als AutoSize und Prozent. Ich muss die absolute Höhe und Breite einer Zelle herausfinden, in der ein bestimmtes Steuerelement platziert ist.Höhe und Breite der TableLayoutPanel-Zelle in Windows Forms abrufen

Oben bekomme ich Höhe als 0. RowStyle ist mit SizeType als AutoSize. In ähnlicher Weise bekomme ich als 33,33. ColumnStyle wird mit SizeType als Prozent und Größe = 33,33 festgelegt.

Ich brauche absolute Größe in Pixel für die Zelle.

Antwort

24

Aus irgendeinem Grund entschied Microsoft, diese Funktionen vor Intellisense zu verbergen.

Dies sollte so geschrieben arbeiten:

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

Ich wusste nicht, war es möglich, eine Funktion von Intellisense zu verbergen, danke! – farukdgn

+0

@farukdgn Siehe [BrowsableAttribute-Klasse] (https://msdn.microsoft.com/en-us/library/system.componentmodel.browsableattribute (v = vs.110) .aspx) – LarsTech

+0

Wozu dient das Ausblenden einer Funktion? Dort? – farukdgn