我这里说的datagrid是Windos Mobile 6 Professional中 的控件,在网上查了很多,发现很多属性都不具备。 我用DataTable为数据源,可以显示出从数据库所查的内容。但控制不了列宽和隐藏。
     不知道是不是我先以DataTable为数据源的原因,后来我用DataGridTableStyle来添加,但是显示不出来。
在这里请大家帮忙解答,谢谢!

解决方案 »

  1.   

    你是不是有些属性没有设为true,所以不显示,或者你在别的地方给 设定死了。
      

  2.   

    这样既可以解决列宽又可以解决行宽,这个问题搞了我好几天。
    void Form2_Load(object sender, System.EventArgs e)
            {
                DataSet ds=BookingCar.Business.Facade.Order.QueryAllOrderStatus(); //查询数据库得到DataSet
                dataGrid1.DataSource=ds.Tables[0]; //设定数据源
                dataGrid1.CaptionText="DataGrid试验";  //设定DataGrid的标题            DataGridTableStyle ts=new DataGridTableStyle();  //定义TableStyle
                ts.MappingName=ds.Tables[0].TableName;   //映射表名称,重要
                ts.ReadOnly=false;     //整个DataGrid读写方式
                
                //第一列
                DataGridTextBoxColumn tc=new DataGridTextBoxColumn();  //定义第一列用TextBox渲染
                tc.HeaderText="状态类型";   //改变列头的显示
                tc.MappingName=ds.Tables[0].Columns[0].ColumnName;  //映射列的名称,重要,实际就是查询select 对因的列
                tc.Alignment=HorizontalAlignment.Center;  //对齐方式
                tc.ReadOnly=true;    //指明这一列的为只读方式
                ts.PreferredColumnWidth=70;  //指明Cell宽度
                ts.PreferredRowHeight=20; //指名Cell高度
                ts.AlternatingBackColor=Color.LightGray;
                ts.GridColumnStyles.Add(tc); //为ColumnStyle添加上面的TextBox            //第二列
                tc=new DataGridTextBoxColumn();
                tc.HeaderText="状态描述";
                tc.MappingName=ds.Tables[0].Columns[1].ColumnName;
                ts.PreferredColumnWidth=200;
                ts.PreferredRowHeight=20;
                ts.AlternatingBackColor=Color.LightGray;
                ts.GridColumnStyles.Add(tc);            //把TableStyle添加到DataGrid的tablestyle中
                dataGrid1.TableStyles.Add(ts);
            }