WinCE内的DataGrid控制列宽,在本论坛看见一个很久远的帖子是解决DataGrid的列宽.
直接上该大神的代码.
public void AutoSizeTable(DataGrid dgData)
{
int numCols = dgData.TableStyles[0].GridColumnStyles.Count;
for (int i = 0; i < numCols; i++)
{
AutoSizeCol(dgData,i);
}
} private static void AutoSizeCol(DataGrid dgData, int colIndex)
{
int rowNums = ((DataTable)dgData.DataSource).Rows.Count;
Byte[] myByte = System.Text.Encoding.Default.GetBytes(dgData.TableStyles["ROW"].GridColumnStyles[colIndex].HeaderText);
int textCount = myByte.Length;
int tempCount = 0;
for (int i = 0; i < rowNums; i++)
{
if (dgData[i, colIndex] != null)
{
myByte = System.Text.Encoding.Default.GetBytes(dgData[i, colIndex].ToString().Trim());
tempCount = myByte.Length; if (tempCount > textCount)
{
textCount = tempCount;
}
}
}
dgData.TableStyles[0].GridColumnStyles[colIndex].Width = textCount * 7;
}
我自己测试过...
发现
int rowNums = ((DataTable)dgData.DataSource).Rows.Count;
和
int numCols = gData.TableStyles[0].GridColumnStyles.Count;
这两句貌似报错.可能是因为我的数据源是在文件读取的(不是从数据库上读取),导致转换DataTable的时候出现转换错误.
所以始终不能控制到列宽,求大神们提供下解决方案..
万分感谢.WinCEdatagrid行业数据
直接上该大神的代码.
public void AutoSizeTable(DataGrid dgData)
{
int numCols = dgData.TableStyles[0].GridColumnStyles.Count;
for (int i = 0; i < numCols; i++)
{
AutoSizeCol(dgData,i);
}
} private static void AutoSizeCol(DataGrid dgData, int colIndex)
{
int rowNums = ((DataTable)dgData.DataSource).Rows.Count;
Byte[] myByte = System.Text.Encoding.Default.GetBytes(dgData.TableStyles["ROW"].GridColumnStyles[colIndex].HeaderText);
int textCount = myByte.Length;
int tempCount = 0;
for (int i = 0; i < rowNums; i++)
{
if (dgData[i, colIndex] != null)
{
myByte = System.Text.Encoding.Default.GetBytes(dgData[i, colIndex].ToString().Trim());
tempCount = myByte.Length; if (tempCount > textCount)
{
textCount = tempCount;
}
}
}
dgData.TableStyles[0].GridColumnStyles[colIndex].Width = textCount * 7;
}
我自己测试过...
发现
int rowNums = ((DataTable)dgData.DataSource).Rows.Count;
和
int numCols = gData.TableStyles[0].GridColumnStyles.Count;
这两句貌似报错.可能是因为我的数据源是在文件读取的(不是从数据库上读取),导致转换DataTable的时候出现转换错误.
所以始终不能控制到列宽,求大神们提供下解决方案..
万分感谢.WinCEdatagrid行业数据
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货