[英]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.