3

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);
    }
}

フォームはどのように見えるか

フォームの操作方法やサイズ変更方法に関係なく。widthそれでも同じデフォルト値が得られます。列のサイズを変更した場合にのみ変更されます。この場合、幅はフォーム自体のxサイズに近いと思います。

4

1 に答える 1

6

を最後の列のプロパティに設定するAutoFitStyleと、列の実際の幅が反映されません。をに設定すると、列の幅を設定して読み取ることができます。ExtendLastColumnWidthAutoFitStyleNone

ただし、少なくとも読むためだけに、回避策があり
ます。上記の例では、列が 1 つしかなく、列の CellSizeResolved プロパティを取得できます。

UltraGridColumn column = grid.DisplayLayout.Bands[0].Columns[0];
Debug.WriteLine("Column width is " + column.CellSizeResolved.Width);
于 2013-02-08T21:21:33.347 に答える