2016-04-23 10 views
0

Ich arbeite mit einem Gridview auf vb.net für Webforms, ich muss Titel zu bestimmten Gruppen von Spalten in dieser Tabelle hinzufügen .. aber ich habe keine Ahnung, wie zu tun Sie es, heres ein Beispiel von, was ich will: enter image description hereWie kann ich mehrere Titel auf einem Gridview hinzufügen

"Student Info", "Subject Info" und "Partial Grades" sind die Titel, die ich hinzufügen muss.

+0

Soweit Wie ich weiß, können Sie keine Spalten innerhalb von Spalten haben ... Sie müssten wahrscheinlich Ihre eigene Kontrolle dafür erstellen. –

+0

@VisualVincent Ich werde versuchen, indem HTML-Tags innerhalb der Gridview hinzufügen –

+0

Das wird definitiv nicht funktionieren. Die DataGridView zeigt kein HTML und 'Visual Basic <> HTML' an. –

Antwort

1

Standard Datagridview hat keine Option, wie Sie wünschen. Sie können versuchen, DevExpress (Es hat Töne von Eigenschaften in Gridcontrol bekam) Sie können Ihre eigene Kontrolle handeln, wie Ihr "TITEL LABELS"

Public Class Form1 erstellen

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim DataGridView1 = New System.Windows.Forms.DataGridView() 
    Dim Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn() 
    Dim Column2 = New System.Windows.Forms.DataGridViewTextBoxColumn() 
    Dim Column3 = New System.Windows.Forms.DataGridViewTextBoxColumn() 
    Dim TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() 
    Dim Label1 = New System.Windows.Forms.Label() 
    Dim Label2 = New System.Windows.Forms.Label() 

    'DataGridView1 
    DataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.None 
    DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize 
    DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Column1, Column2, Column3}) 
    DataGridView1.Location = New System.Drawing.Point(13, 78) 
    DataGridView1.Name = "DataGridView1" 
    DataGridView1.RowHeadersVisible = False 
    DataGridView1.Size = New System.Drawing.Size(397, 228) 
    DataGridView1.TabIndex = 0 
    DataGridView1.Name = "dgv" 
    AddHandler DataGridView1.ColumnWidthChanged, AddressOf DataGridView1_ColumnWidthChanged 
    ' 
    'Column1 
    ' 
    Column1.HeaderText = "Column1" 
    Column1.Name = "Column1" 
    ' 
    'Column2 
    ' 
    Column2.HeaderText = "Column2" 
    Column2.Name = "Column2" 
    ' 
    'Column3 
    ' 
    Column3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill 
    Column3.HeaderText = "Column3" 
    Column3.Name = "Column3" 
    ' 
    'TableLayoutPanel1 
    ' 
    TableLayoutPanel1.ColumnCount = 2 
    TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 53.98936!)) 
    TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 195.0!)) 
    TableLayoutPanel1.Controls.Add(Label2, 1, 0) 
    TableLayoutPanel1.Controls.Add(Label1, 0, 0) 
    TableLayoutPanel1.Location = New System.Drawing.Point(12, 51) 
    TableLayoutPanel1.Name = "TableLayoutPanel1" 
    TableLayoutPanel1.RowCount = 1 
    TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) 
    TableLayoutPanel1.Size = New System.Drawing.Size(398, 29) 
    TableLayoutPanel1.TabIndex = 1 
    TableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] 
    TableLayoutPanel1.Name = "title" 
    ' 
    'Label1 
    ' 
    Label1.Anchor = System.Windows.Forms.AnchorStyles.None 
    Label1.AutoSize = True 
    Label1.Location = New System.Drawing.Point(82, 8) 
    Label1.Name = "Label1" 
    Label1.Size = New System.Drawing.Size(39, 13) 
    Label1.TabIndex = 0 
    Label1.Text = "Label1" 


    ' 
    'Label2 
    ' 
    Label2.Anchor = System.Windows.Forms.AnchorStyles.None 
    Label2.AutoSize = True 
    Label2.Location = New System.Drawing.Point(281, 8) 
    Label2.Name = "Label2" 
    Label2.Size = New System.Drawing.Size(39, 13) 
    Label2.TabIndex = 1 
    Label2.Text = "Label2" 
    ' 
    'Form1 
    ' 

    Me.Controls.Add(TableLayoutPanel1) 
    Me.Controls.Add(DataGridView1) 
End Sub 

Private Sub DataGridView1_ColumnWidthChanged(sender As Object, e As DataGridViewColumnEventArgs) 
    Dim title As TableLayoutPanel = CType(Me.Controls("title"), TableLayoutPanel) 
    Dim dgv As DataGridView = CType(Me.Controls("dgv"), DataGridView) 
    title.ColumnStyles(0).Width = dgv.Columns(0).Width + dgv.Columns(1).Width 
    title.ColumnStyles(1).Width = dgv.Columns(2).Width 
End Sub 

End Class

+0

hey, Sie denken, Sie können ein hinzufügen Geige, wo ich das Ergebnis sehen kann? –

+0

Erstellen Sie ein neues Projekt und fügen Sie den gesamten Code in Ihr form1.vb – snoopcommands

Verwandte Themen