获得ultragridcolumn的实际宽度

时间:2013-02-08 20:24:48

标签: c# winforms infragistics ultragrid

如何准确地在UltraGrid和UltraGrid中获得扩展的UltraGridColumn的宽度?

我有以下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大小。

1 个答案:

答案 0 :(得分:6)

如果将AutoFitStyle设置为ExtendLastColumn,则最后一列上的Width属性不会反映列的实际宽度。如果您将AutoFitStyle设置为None,则可以设置并读取列宽度。

然而,至少只是为了阅读,有一个解决方法:
在上面的示例中,只有一列,您可以获取列

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