CSDN文档中心有介绍,去文档中心,查询DataGrid即可找到。

解决方案 »

  1.   

    // 大写的自己换DataGridTableStyle style = new DataGridTableStyle ( ) ;
    style.MappingName = TABLENAME ;
    DataGridTextBoxColumn colStyle = new DataGridTextBoxColumn ( ) ;colStyle.HeaderText = "用户名" ;
    colStyle.MappingName = USERNAME ;
    colStyle.Width = 200 ;// 设置为居中
    colStyle.Alignment = HorizontalAlignment.Center;style.GridColumnStyles.AddRange ( new DataGridColumnStyle [] { USERNAME } ) ;DataGrid1.TableStyles.Add ( style ) ;
      

  2.   

    itemstyle,headstyle 没这东西,至少我不知道
      

  3.   

    Datagrid的标题居中说起                         编程的乐趣是什么?相信各人都有自己的见解。Henry最大的快乐是享受创造的喜悦,而且这种喜悦都是建立在可以看得到的实践上的。今天这篇小文源头很简单,是我中午在CSDN论坛上看到一个网友发的帖子,当时也回了帖,但话语不详,更重要的是下午稍稍一试,得到了两种实现的方法,不亦乐乎,尽管事务缠身,也赶紧记下。命题:如何在.NET中使Datagrid的标题文字居中。分析一:这个命题似乎不难,主要是Datagrid作者没有提供CaptionAlign这样的属性给大家,所以……那么怎么解决它呢?我想到最直接的方法,就是给标题文字前面加上适当的空格数,使标题文字推到中间去。好,说做就做。(1)      要知道在当前环境下,Datagrid标题栏一个英文字符占据了多大的宽度;(2)      Datagrid的宽度/字符宽度=标题栏所能容纳的字符数(3)      给已有标题的文本前面添加n个空格,n=(标题栏所能容纳的字符数-已有标题的字符数)/2代码如下所示:Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load        Dim perWidth As Integer ‘一个英文字符占据的宽度        Dim count As Integer ‘标题栏所能容纳的字符数        Dim len As Integer‘已有标题的字符数        Dim i As Integer        With Graphics.FromHwnd(DataGrid1.Handle).MeasureString(Text:="ABCDEFGHIJKLMNOPQRSTUVWXYZ", Font:=DataGrid1.Font)            perWidth = CInt(.Width / 26.0!)        End With        count = DataGrid1.Width / perWidth        len = System.Text.Encoding.Default.GetByteCount(DataGrid1.CaptionText)        For i = 1 To (count - len) / 2             DataGrid1.CaptionText = " " + DataGrid1.CaptionText        NextEnd Sub要点1如何计算一个英文字符的宽度,见代码要点2如何获得标题文本所占的字符数,要知道英文占一个字节,中文是占两个字节。解决方法就是用System.Text.Encoding.Default.GetByteCount来做。这些技巧还是很有用的,望牢记!另外,您可以用String.PadLeft属性来试试填充空字符串结果如图一所示: 图1 第一种方案:加空格分析二:但认真一想,这种方法还是不爽,智能化不够,于是乎就有了这种方法。即把标题文字写入一个Label里面去,然后把Label嵌入到datagrid中去,动态地调整Label的位置,不就结了!Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load        LabCaption.BackColor = Color.Transparent  ‘设为透明色        LabCaption.AutoSize = True ‘设为可根据文本内容自动调整文本框大小        LabCaption.BorderStyle = BorderStyle.None ‘设为无边框        LabCaption.ForeColor = Color.White  ‘前景色设为白色,就是文字是白色字        DataGrid1.Controls.Add(LabCaption)  ‘将文本框嵌入Datagrid中去        LabCaption.Top = 5‘设置高度,0指的是datagrid的头部位置        LabCaption.Left = (DataGrid1.Width - LabCaption.Width) / 2 ‘设置居中End Sub`  图2 第二种方案:嵌入文本框从图2中我们可以看到整个的实现过程,当然也有小技巧值得一说:要点1:设置文本框底色为透明。只写一句LabCaption.BackColor = Color.Transparent是不行的,这样的话,系统会将背景色设置为Form的底色,因为透明是相对的嘛,想想变色龙的原理就明白了。我们得设置一步:LabCaption.Parent = DataGrid1这样才行,或者是和上述代码中所写的用:DataGrid1.Controls.Add(LabCaption)也可以。这里Parent属性在弹出菜单里没有,别管它,写上就行了。要点2:很遗憾,这种简单的方法需要把Datagrid的borderstyle设为None或Single,设为3D的时候Label也会有个小边框。 一个简单的命题,带给我们思考的喜悦,祝您也一样在工作与学习中获得更多的欣喜!
      

  4.   

    修改datagrid的tablestyle中每个column的alignment属性不可以吗?用的着这么麻烦吗?
      

  5.   

    首先确定的是你是在webform下还是winform下,如果是前者,所谓的itemstyle,headstyle
    就是html的属性,就是在.aspx页面上加,而不是在.aspx.cs上
    <headstyle></headstyle>
    <itemstyle></itemstyle>
      

  6.   

    redfoxhuang 说得有道理
     试试吧
      

  7.   

    楼上的话在理
    myColumn.Alignment=??.Center;是设置整列的对齐方式
      

  8.   

    我在tablestyle中添加了一个datagridtablestyle,然后再“杂项”当中gridcolumnstyle选项中添加了一个datagridtextboxcolumn1,将他的aligment设置为center,mappingname设置为我的数据表中的一列,但是显示的时候还是不居中阿??????????
      

  9.   

    就这么简单:<asp:BoundColumn DataField="TaskName" ReadOnly="True" HeaderText="任务名称" HeaderStyle-HorizontalAlign="Center"></asp:BoundColumn>
      

  10.   

    难道datagrid中只能让显示的数据居中,却不能让列标题居中吗???
      

  11.   

    <asp:BoundColumn DataField="xcolumnname" SortExpression="actquantity" HeaderText="yyy" HeaderStyle-HorizontalAlign="Center">