vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Datagridview Style 
Autor: Manfred X
Datum: 25.06.15 19:07

Hallo!

Eigentlich sollte man entscheiden, wie das Control selektiert
(Selectionmode: FullRowSelect, Cellselect usw.)
und entsprechend die Selection darstellt.
Ergänzend wäre zu beachten, ob im GridView auch Multiselect eingestellt ist.

Du willst sozusagen eine Doppelselection anzeigen: FullRowselect + Cellselect.

Das ist so nicht vorgesehen.
Du könntest im FullRowSelect-Modus des Grid auf das CellPainting-Event
zurückgreifen und die aktuelle Zeile separat kolorieren. Einfach mal ausprobieren.
Eventuell mußt Du noch die Grid-Events CellEnter/CellLeave geeignet bearbeiten.
Public Class frmGridColor
 
    Dim WithEvents dgv As New DataGridView With _
        {.Parent = Me, .Dock = DockStyle.Fill}
 
    Dim dt As New DataTable
 
 
 
    Private Sub frmGridColor_Load(sender As System.Object, _
          e As System.EventArgs) Handles MyBase.Load
 
        'Testdaten
        dt.Columns.Add("A") : dt.Columns.Add("B") : dt.Columns.Add("C")
 
        For i As Integer = 1 To 10
            dt.Rows.Add({i, i * 100, i * 1000})
        Next i
 
        'Datenbindung
        dgv.DataSource = dt
 
        dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        dgv.MultiSelect = False
        dgv.Rows(0).Selected = True
 
    End Sub
 
 
 
    Private Sub dgv_CellPainting(sender As Object, _
        e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
        Handles dgv.CellPainting
 
        If e.RowIndex < 0 Or e.ColumnIndex < 0 Then Exit Sub
 
        Dim c As DataGridViewCell = dgv.Rows(e.RowIndex).Cells(e.ColumnIndex)
 
        If Not ReferenceEquals(c, dgv.CurrentCell) AndAlso _
            c.RowIndex = dgv.CurrentCell.RowIndex Then
 
            'Zellen in aktueller Zeile ausser der aktuellen Zelle kolorieren
            Using brback As New SolidBrush(Color.DarkGreen), _
                 brfore As New SolidBrush(Color.White)
                e.Graphics.FillRectangle(brback, e.CellBounds)
                e.Graphics.DrawString(c.Value.ToString, dgv.Font, brfore, _
                New PointF(e.CellBounds.X + 3, e.CellBounds.Y + 3))
            End Using
            e.Handled = True
        End If
 
    End Sub
End Class


Beitrag wurde zuletzt am 25.06.15 um 19:26:07 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datagridview Style1.551DavidoO25.06.15 16:11
Re: Datagridview Style878Manfred X25.06.15 19:07
Re: Datagridview Style773DavidoO29.07.15 15:58

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel