2013-02-08 3 views
2

Как я могу получить расширенную ширину UltraGridColumn внутри и UltraGrid?Получение фактической ширины ультрарезанной колонии

У меня есть следующие формы Windows:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     IEnumerable<string> test = new List<string>{DateTime.Now.ToString()}; 
     this.ultraGrid2.DataSource = test; 
     this.ultraGrid2.DisplayLayout.AutoFitStyle = AutoFitStyle.ExtendLastColumn; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("The column width is " + this.ultraGrid2.DisplayLayout.Bands[0].Columns[0].Width); 
    } 
} 

what the form looks like

Независимо от того, как я манипулировать или изменить форму. Значение width по-прежнему дает то же значение по умолчанию. Только если я изменю размер столбца, он изменится. В этом случае я бы подумал, что ширина будет близка к размеру x самой формы.

ответ

5

Если вы установили AutoFitStyle в ExtendLastColumn, то свойство Width в последнем столбце не отражает фактическую ширину столбца. Если вы установили AutoFitStyle в None, вы можете установить и прочитать ширину столбца.

Однако, по крайней мере, только для чтения, есть обходной путь:
В вашем примере выше, только один столбец, вы можете получить CellSizeResolved свойства столбца

UltraGridColumn column = grid.DisplayLayout.Bands[0].Columns[0]; 
Debug.WriteLine("Column width is " + column.CellSizeResolved.Width); 
+0

Спасибо за объяснение и обходной путь. –

Смежные вопросы