Forums Neueste Beiträge
 

speziele Zeile im DataGridView referenzieren

15/07/2008 - 23:27 von Attila Krick | Report spam
Hi NG,

ich habe ein DGV an einer BS gebunden, das wiederum hat eine DataTable als
Source. Nun führe ich meine Berechnung in der DataTable durch und erhalte
dort eine ID. Jetzt würde ich gerne im DGV genau diese Zeile referenzieren
um diese Zeile farblich hervorrheben zu können. Im DGV gibt es eine
versteckte ID Spalte die u.a. die o.a. ID enthàlt.
Gibt es eine Möglichkeit anhand eines Spalteninhaltes im DGV die Zeile zu
referenzieren?

Grüße

Attila
 

Lesen sie die antworten

#1 Peter Götz
16/07/2008 - 08:45 | Warnen spam
Hallo Attila,

ich habe ein DGV an einer BS gebunden, das wiederum
hat eine DataTable als Source.



Tatsàchliche DataSource für Dein Grid ist eine DataView.

Nun führe ich meine Berechnung in der DataTable durch
und erhalte dort eine ID. Jetzt würde ich gerne im DGV
genau diese Zeile referenzieren um diese Zeile farblich
hervorrheben zu können. Im DGV gibt es eine versteckte
ID Spalte die u.a. die o.a. ID enthàlt.
Gibt es eine Möglichkeit anhand eines Spalteninhaltes
im DGV die Zeile zu referenzieren?



Schau Dir mal das nachfolgende Beispiel an.
Das sollte Deine Sicht auf Dein Problem ein wenig
veràndern.


' /// Code in einer leeren Form
Public Class Form1
Private WithEvents DGV As DataGridView
Private mDT As DataTable
Private mDV As DataView
Private mCM As CurrencyManager

Private mCounter As Integer

Private WithEvents mTimer _
As System.Windows.Forms.Timer

Private Sub Form1_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.Load

DGV = New DataGridView
With DGV
.SetBounds _
(10, 10, _
Me.ClientSize.Width - 20, _
Me.ClientSize.Height - 20)

.Anchor = AnchorStyles.Left Or _
AnchorStyles.Top Or _
AnchorStyles.Right Or _
AnchorStyles.Bottom

.DefaultCellStyle.Font = _
New Font("Arial", 12)
.ColumnHeadersDefaultCellStyle.Font = _
New Font("Arial", 8, FontStyle.Bold)

End With
Me.Controls.Add(DGV)

CreateData()

DGV.DataSource = mDV
DGV.AutoResizeColumns()
DGV.AutoResizeRows()

mTimer = New System.Windows.Forms.Timer
mTimer.Interval = 1000
mTimer.Start()
End Sub

Private Sub CreateData()
Dim i As Integer
Dim DR As DataRow

mDT = New DataTable
With mDT
.Columns.Add("ID", GetType(Integer))
.Columns.Add("SText", GetType(String))
.Columns.Add("LText", GetType(String))

For i = 1 To 12
DR = .NewRow
DR.Item(0) = i
DR.Item(1) = MonthName(i, True)
DR.Item(2) = MonthName(i, False)
.Rows.Add(DR)
Next
.AcceptChanges()
End With

mDV = New DataView(mDT)

mCM = DirectCast _
(Me.BindingContext(mDV), _
CurrencyManager)
End Sub

Private Sub mTimer_Tick _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles mTimer.Tick

DGV.CurrentRow.DefaultCellStyle.BackColor = _
Color.FromKnownColor(KnownColor.Window)

DGV.CurrentRow.DefaultCellStyle.ForeColor = _
Color.FromKnownColor(KnownColor.WindowText)

If mCM.Position < 11 Then
mCM.Position += 1
Else
mCM.Position = 0
End If

DGV.CurrentRow.DefaultCellStyle.BackColor = _
Color.FromKnownColor(KnownColor.Highlight)

DGV.CurrentRow.DefaultCellStyle.ForeColor = _
Color.FromKnownColor(KnownColor.HighlightText)

DGV.Invalidate()
End Sub

End Class
' \\\ E N T E

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen