winform:我的DataGrid中为什么没有HeaderText属性?谢谢!

duanfeixox 2004-12-27 03:03:50
winform:我的DataGrid中为什么没有HeaderText属性?谢谢!
...全文
50 点赞 收藏 3
写回复
3 条回复
denxiaom 2005年05月11日
mk
回复 点赞
长江支流 2004年12月28日
方法一:
直接在SQL中重命名
Select Order As 订单号,.... From ...
绑定后就是重名的列了

方法二:
指定TableStyle的列头文本
myColumnStyle1.HeaderText = "订单号"; //楼上的


方法三:
将datagrid的标题列那一行隐藏,在OnPaint事件中重绘标题行
回复 点赞
marvelstack 2004年12月28日
数据源绑定到DataGrid时实际上是绑定的DataView。如数据源是
DataSet时,则可以向DataMember 属性设置一个字符串,该字符串指定要绑定到的表,
然后再将DataMember指定的那个DataTable的DefaultView绑定到DataGrid。
DataGrid绑定到一个DataView后,由DataGrid.TableStyles中的
DataGridTableStyle 对象的集合来控制这个DataView的哪些列要显示,列的宽度多
少,列标头的文本是什么等等。确省的DataGrid.TableStyles中不包含任何对象,这时
DataGrid将会按照DataView列的顺序将所有的列都显示出来。如果想自己定制显示,这
就要用TableStyles来控制了。
新建一个TableStyle,将此TableStyle.MappingName属性对应到这个TableStyle要
控制的那个DataTable的名字:
DataGridTableStyle myTableStyle = new DataGridTableStyle();
myTableStyle.MappingName = "myDateTable";
再建立三个DataGridColumnStyle,分别用来控制将要显示的三个列,例如:
DataGridColumnStyle myColumnStyle1 = new DataGridTextBoxColumn();
myColumnStyle1.MappingName = "OrderID";
myColumnStyle1.HeaderText = "订单号";
DataGridColumnStyle myColumnStyle2 = new DataGridTextBoxColumn();
myColumnStyle2.MappingName = "CustomerID";
myColumnStyle2.HeaderText = "客户号";
DataGridColumnStyle myColumnStyle3 = new DataGridTextBoxColumn();
myColumnStyle3.MappingName = "OrderDate";
myColumnStyle3.HeaderText = "订单日期";
将这三个DataGridColumnStyle添加到TableStyle中:
myTableStyle.GridColumnStyles.Add(myColumnStyle1);
myTableStyle.GridColumnStyles.Add(myColumnStyle2);
myTableStyle.GridColumnStyles.Add(myColumnStyle3);
最后将TableStyle添加到DataGrid中:
dataGrid1.TableStyles.Add(myTableStyle);
将 TableStyle添加到DataGrid后,再绑定数据源,这时我们就会看到这样的数据显示
了。DataGrid的编辑修改 DataGrid支持对DataGrid所显示的DataTable的编辑修改,如
果不想修改只要DataGrid的ReadOnly属性为True,就可以了。
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告