我是DataGrids的新手。
我的代码:
private void populateGrid()
{
conn.Open();
string query;
query = "select company_id_no, company_name, last_update_datetime, username from company";
OracleDataAdapter da = new OracleDataAdapter(query, conn);
OracleDataSet ds = new OracleDataSet();
da.Fill(ds);
dgSku.DataSource = ds.Tables[0];
}
这就是我在移动设备上的外观:
我希望它自动将列重新调整为100%,例如:
如果有人能指出我正确的方向,我真的很感激。
提前致谢!
答案 0 :(得分:4)
string query;
query = "....SQL...";
{
conn.Open();
using (OracleDataAdapter a = new OracleDataAdapter(query, conn))
{
DataTable t = new DataTable();
a.Fill(t);
dgSku.TableStyles.Clear();
DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = t.TableName;
foreach (DataColumn item in t.Columns)
{
DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
tbcName.Width = 80;
tbcName.MappingName = item.ColumnName;
tbcName.HeaderText = item.ColumnName;
tableStyle.GridColumnStyles.Add(tbcName);
}
dgSku.TableStyles.Add(tableStyle);
}
}
答案 1 :(得分:3)
我认为没有自动调整大小的属性。
本文介绍如何使用DataGridTableStyle调整列的宽度。
http://support.microsoft.com/kb/330610
如果将它与Graphics.MeasureString方法结合使用,您应该能够计算所需的列大小。
http://msdn.microsoft.com/en-us/library/system.drawing.graphics.measurestring(v=vs.71).aspx
就个人而言,我只想使用DataGridTableStyle在列宽上设置一些合理的默认值,而忘记自动调整大小。当您必须开始考虑上/下滚动条和屏幕旋转的空间时,它会变得特别痛苦。