2012-12-05 15 views
14

Utilizzo di TableLayoutPanel in Windows Form. Sto usando RowStyles e ColumnStyles con SizeType rispettivamente come AutoSize e Percent. Devo scoprire l'altezza e la larghezza assolute di una cella in cui è posizionato un particolare controllo.Ottieni altezza e larghezza della cella TableLayoutPanel in Windows Form

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

Sopra, sto ottenendo altezza come 0. RowStyle è con SizeType come AutoSize. Allo stesso modo, sto diventando come 33.33. ColumnStyle è impostato con SizeType come percentuale e dimensione = 33.33.

Ho bisogno di ottenere la dimensione assoluta in pixel per la cella.

risposta

24

Per qualche strana ragione, Microsoft ha deciso di nascondere tali funzioni dall'intelligence.

Questo dovrebbe funzionare come scritto:

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

non sapevo che fosse possibile nascondere una funzione da intellisense, grazie! – farukdgn

+0

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

+0

Qual è il punto di nascondere una funzione da Là? – farukdgn

Problemi correlati