Public Class ProductInfo
    Private _productId As String
    Private _productName As String
    Private _productDesc As String    Public Sub New(ByVal productId As String, ByVal productName As String, ByVal productDesc As String)
        Me._productId = productId
        Me._productName = productName
        Me._productDesc = productDesc
    End Sub    Public ReadOnly Property ProductId() As String
        Get
            Return Me._productId
        End Get
    End Property    Public ReadOnly Property ProductName() As String
        Get
            Return Me._productName
        End Get
    End Property    Public ReadOnly Property ProductDesc() As String
        Get
            Return Me._productDesc
        End Get
    End Property
End Class
......
dim plist as new ArrayList()
dim p1 as new ProductInfo("p1", "p1", "p1") 
dim p2 as new ProductInfo("p2", "p2", "p2") 
dim p3 as new ProductInfo("p3", "p3", "p3") 
plist.add(p1)
plist.add(p2)
plist.add(p3)
datagrid1.DataSource = plist
---------------------------------------------------
datagrid1的显示如下
ProductId     ProductName       ProductDesc
p1            p1                p1
p2            p2                p2
p3            p3                p3---------------------------------------------------
现在想让datagrid1的显示列名为中文"产品编号","产品名称","产品说明",应该怎么弄.
100分相求!谢谢!
(不好意思是用vb.net的语法)

解决方案 »

  1.   

    ....
    datagrid1.DataSource = plist
    dataGrid1.TableStyles(0).GridColumnStyles(0).HeaderText = "产品编号"
    dataGrid1.TableStyles(0).GridColumnStyles(1).HeaderText = "产品名称"
    dataGrid1.TableStyles(0).GridColumnStyles(2).HeaderText = "产品说明"
    dataGrid1.refresh()
      

  2.   

    在设计时设置数据表的表样式和列样式 选择窗体上的数据网格控件。 
    在“属性”窗口中,选择 TableStyles属性并单击省略号按钮 ()。 
    屏幕上将会打开“DataGridTableStyle 集合编辑器”。在此对话框中,您可以添加或移除表样式,设置显示和布局属性,并可以为表样式设置映射名称。 单击“添加”按钮,将表样式添加到集合中。 
    在 MappingName 属性中,为表样式设置映射名称。映射名称用于指定哪个表应该使用哪种表样式。 
    将列样式添加到您创建的表样式中。为此,请在“DataGridTableStyle 集合编辑器”中,选择 GridColumnStyle 属性并单击省略号按钮 ()。 
    “DataGridColumnStyle 集合编辑器”将打开。在此对话框中,您可以添加或移除列样式,设置显示和布局属性,并可以为数据列设置映射名称和格式设置字符串。 注意   有关格式设置字符串的更多信息,请参见格式化类型。
    以编程方式设置数据表的表样式和列样式 创建一个新的表样式并设置其属性。 
    创建一个列样式并设置其属性。 
    将列样式添加到表样式的列样式集合中。 
    将表样式添加到数据网格的表样式集合中。 
    在下面的示例中,将创建一个新 DataGridTableStyle 的实例并设置其 MappingName 属性。 
    创建 GridColumnStyle 的一个新实例并设置其 MappingName(和其他一些布局和显示属性)。 
    对于要创建的每个列样式,重复步骤 2 到 6。 
    以下示例说明如何创建 DataGridTextBoxColumn 以在创建的此列中显示一个名称。另外,本例中要将列样式添加到表样式的 GridColumnStylesCollection 中,并将表样式添加到数据网格的 GridTableStylesCollection 中。 ' Visual Basic
    Private Sub CreateAuthorFirstNameColumn()
       ' Add a GridTableStyle and set the MappingName 
       ' to the name of the DataTable.
       Dim TSAuthors As New DataGridTableStyle()
       TSAuthors.MappingName = "Authors"   ' Add a GridColumnStyle and set the MappingName 
       ' to the name of a DataColumn in the DataTable. 
       ' Set the HeaderText and Width properties. 
       Dim TCFirstName As New DataGridTextBoxColumn()
       TCFirstName.MappingName = "AV_FName"
       TCFirstName.HeaderText = "First Name"
       TCFirstName.Width = 75
       TSAuthors.GridColumnStyles.Add(TCFirstName)   ' Add the DataGridTableStyle instance to 
       ' the GridTableStylesCollection. 
       myDataGrid.TableStyles.Add(TSAuthors)
    End Sub 
      

  3.   

    Eddie005(♂) 暴赱 『零零伍』(︶︵︶)
      谢谢你的回复.
      用你提供的代码会报运行错误.使用"监视"可知DataGrid1.TableStyles(0).GridColumnStyles.Count=1,所以后面的索引已经越界了.hyena041(ni)
      谢谢你的回复.我试过添加一个新的tablestyle(添加了新的GridColumnStyles),是不行的.我想可能是MapingName不符,或者其他原因.
      

  4.   

    我遇到一次索引越界,是因为多个tablestyle,mapingname冲突,可以多个grid用一个style,不过在界面中好像不能改,要直接在代码里修改