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行业数据