Tipp-Upload: VB.NET 0424: DatagridView Header Spalten verbinden
von pks
Über den Tipp
Dieser Tippvorschlag ist noch unbewertet.
Der Vorschlag ist in den folgenden Kategorien zu finden:
- Listensteuerelemente
Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
Datagridview,Grafik
Der Vorschlag wurde erstellt am: 14.01.2012 07:10.
Die letzte Aktualisierung erfolgte am 14.01.2012 07:29.
Beschreibung
im DatagridviewHeader Spalten mit einer Überschrift verbinden
Januar Februar
Anzahl Wert Anzahl Wert
Schwierigkeitsgrad |
Verwendete API-Aufrufe: |
Download: |
' Dieser Source stammt von http://www.activevb.de ' und kann frei verwendet werden. Für eventuelle Schäden ' wird nicht gehaftet. ' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. ' Ansonsten viel Spaß und Erfolg mit diesem Source! ' ' Beachten Sie, das vom Designer generierter Code hier ausgeblendet wird. ' In den Zip-Dateien ist er jedoch zu finden. ' ----- Anfang Projektdatei DGV_SpaltenVerbinden.vbproj ----- ' ------------------ Anfang Datei Form1.vb ------------------ ' ------------------------------------------ ' im Datagridview Header Spalten verbinden ' ' system VB2005 ' autor peter.k.sauer@web.de ' created 14.01.2012 ' update 14.01.2012 ' ------------------------------------------ Public Class Form1 Private _DataGridViewIsInit As Boolean = False Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load DataGridViewInit() End Sub #Region "DataGridView1 Ereignisse " Private Sub DataGridView1_Paint(ByVal sender As Object, ByVal e As _ System.Windows.Forms.PaintEventArgs) Handles DataGridView1.Paint DataGridViewPaintHeader(DataGridView1) End Sub Private Sub DataGridView1_Scroll(ByVal sender As Object, ByVal e As _ System.Windows.Forms.ScrollEventArgs) Handles DataGridView1.Scroll If _DataGridViewIsInit Then DataGridViewPaintHeader(DataGridView1) End If End Sub Private Sub DataGridView1_SizeChanged(ByVal sender As Object, ByVal e As _ System.EventArgs) Handles DataGridView1.SizeChanged If _DataGridViewIsInit Then DataGridViewPaintHeader(DataGridView1) End If End Sub #End Region ''' <summary> ''' Datagridview einrichten und Spalten anlegen ''' </summary> ''' <remarks></remarks> Private Sub DataGridViewInit() With DataGridView1 .Columns.Clear() .ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing .ColumnHeadersHeight = .ColumnHeadersHeight * 5 \ 2 For i As Integer = 1 To 12 Dim HeaderText As String() = {"Anzahl", "Wert"} Dim HeaderName As String() = {"Anz", "Wert"} For j As Integer = 0 To 1 Dim CH As New DataGridViewTextBoxColumn CH.CellTemplate.Style.Format = "#" CH.CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleRight CH.HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomRight CH.Width = 50 CH.HeaderText = HeaderText(j) CH.Name = HeaderName(j) & i.ToString CH.ReadOnly = True CH.SortMode = DataGridViewColumnSortMode.NotSortable .Columns.Add(CH) Next Next _DataGridViewIsInit = True .Rows.Add(5) End With End Sub ''' <summary> ''' Datagridview Spalten im Header verbinden ''' </summary> ''' <param name="DGV"></param> ''' <remarks></remarks> Private Sub DataGridViewPaintHeader(ByVal DGV As DataGridView) Dim Format As New StringFormat Format.Alignment = StringAlignment.Center Format.LineAlignment = StringAlignment.Center Dim Rect As Rectangle = Nothing Dim BrBackColor As New SolidBrush(DGV.ColumnHeadersDefaultCellStyle.BackColor) Dim BrForeColor As New SolidBrush(DGV.ColumnHeadersDefaultCellStyle.ForeColor) Dim F As Font = DGV.ColumnHeadersDefaultCellStyle.Font Using Fo As New Font(F.SystemFontName, F.Size, FontStyle.Bold) With DGV Dim G As Graphics = .CreateGraphics For i As Integer = 1 To 12 Dim Key As String = "Anz" & i.ToString Dim Index As Integer = .Columns(Key).Index Rect = .GetCellDisplayRectangle(Index, -1, True) ' nur im sichtbaren Bereich If Rect.Left > 0 Then Rect.Width += .Columns(Index + 1).Width Rect.Width -= 2 Rect.Height = Rect.Height \ 2 + 2 Rect.X += 1 Rect.Y += 1 G.FillRectangle(BrBackColor, Rect) Dim d As Date = New Date(2000, i, 1) G.DrawString(d.ToString("MMMM"), Fo, BrForeColor, Rect, Format) End If Next End With End Using End Sub End Class ' ------------------- Ende Datei Form1.vb ------------------- ' ------ Ende Projektdatei DGV_SpaltenVerbinden.vbproj ------
Diskussion
Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.
Folgende Diskussionen existieren bereits
Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.