簡體   English   中英

從C#中的數據源填充dataGridView之后,如何調整列的大小?

[英]How do I resize columns after I populate the dataGridView from a data source in c#?

我無法使它正常工作。 這是我的代碼的一部分,可以給您一些想法。

    Scout ScoutInstance = new Scout();
    String sql;
    DataTable table;

    sql = "select * from FD_GROUP";

    table = ScoutInstance.getTableValues(sql);
    dataGridView1.DataSource = table;

    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
    dataGridView1.AutoResizeColumns();

    int width = 0;
    foreach (DataGridViewColumn column in dataGridView1.Columns)
        if (column.Visible == true)
        {
            width += column.Width;
            Console.WriteLine("{0}", column.Width);
        }
    Console.WriteLine("{0}", width);

我得到的輸出告訴我,兩列的寬度相等(100),但是程序本身顯示了不同寬度的列。

您可以嘗試這樣的事情。

private  void setdatagridviewcolumnwidth()
{
   datagridview1.columns[0].width = 100;
   datagridview1.columns[1].width =100;

}

然后將datagridview與datasource(ie)綁定后,放置此函數

table = ScoutInstance.getTableValues(sql);     
dataGridView1.DataSource = table;
setdatagridviewcolumnwidth() //here you will call set widths method

您應該更新網格布局以顯示正確的值。 因為布局更新已排隊,否則它不會在離開子目錄之前更新。 因此使用:

dataGridView1.UpdateLayout()

在AutoResizeColumns之后,您將獲得自己的值。

關於更新版面:

http://msdn.microsoft.com/zh-CN/library/system.windows.uielement.updatelayout.aspx

“確保正確更新此元素的所有可視子元素以進行布局。”

“所有計算出的尺寸都會得到驗證。”

“這是您的情況。只有在您絕對需要更新的大小和位置時,才應調用UpdateLayout”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM