Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Farbe ändern in einer einzelnen Zelle im Datagridview

367 views
Skip to first unread message

Jörg Klebsattel

unread,
Apr 10, 2008, 4:06:39 PM4/10/08
to
Hallo Leute,

ich habe mich inzwischen dumm und dämlich gesucht.

ich suche einen Code, der es mir ermöglicht, die Hintergrundfarbe von
Zellen zu ändern, sobald da ein bestimmter Text oder eine bestimmte Zahl
drinsteht.

Ich hoffe ihr könnt mir helfen

Grüße

Peter Götz

unread,
Apr 11, 2008, 3:52:22 AM4/11/08
to
Hallo Jörg,

> ich suche einen Code, der es mir ermöglicht, die
> Hintergrundfarbe von Zellen zu ändern,

DataGridViewRow.Cells(x).Style = NeuerDataGridViewCellStyle

> sobald da ein bestimmter Text oder eine bestimmte Zahl
> drinsteht.

If DGV.Item(Y, X).Value = Vergleichswert then
......
end if


> Ich hoffe ihr könnt mir helfen

Wie das ganze in echtem Code aussieht, kannst Du
Dir im Beispiel unter

www.gssg.de -> VisualBasic -> VB.net
-> DataGridView CellFormat

ansehen.

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


Jörg Klebsattel

unread,
Apr 11, 2008, 10:31:00 AM4/11/08
to
Hallo Peter,

danke für den Hinweis, aber funktioniert bei mir nicht wirklich.

Ich habe ein Datagridview = /*Statusdatagridview*/ mit fünf Spalten:

1. ID
2. Fahrzeug
3. Status
4. Fahrzeugart
5. Bemerkungen


Jetzt soll das Programm die Spalte Status überprüfen, und wenn dort z.
B. /ok/ angezeigt wird, den Hintergrund auf grün setzen.

Die Daten holt sich das Datagridview aus einer eingebundenen SQL-Datenbank.

Kannst mir weiterhelfen?

Gruß
Jörg

Peter Götz schrieb:

Elmar Boye

unread,
Apr 11, 2008, 11:28:04 AM4/11/08
to
Jörg Klebsattel schrieb:

> Hallo Peter,
>
> danke für den Hinweis, aber funktioniert bei mir nicht wirklich.
>
> Ich habe ein Datagridview = /*Statusdatagridview*/ mit fünf Spalten:
>
> 1. ID
> 2. Fahrzeug
> 3. Status
> 4. Fahrzeugart
> 5. Bemerkungen
>
>
> Jetzt soll das Programm die Spalte Status überprüfen, und wenn dort z.
> B. /ok/ angezeigt wird, den Hintergrund auf grün setzen.

Abonniere das CellFormatting Ereignis und setze dort die BackColor auf Color.Green.
Ein Beispiel findest Du in der Online Dokumentation:
<URL:http://msdn2.microsoft.com/de-de/library/z1cc356h.aspx>
"Gewusst wie: Anpassen der Datenformatierung im DataGridView-Steuerelement in Windows Forms"

Um die Status Zeile unabhängig von ihrer Position zu ermitteln kannst
neben dem Namen auch die DataPropertyName Eigenschaft verwenden.

Gruß Elmar

Peter Götz

unread,
Apr 11, 2008, 12:31:26 PM4/11/08
to
Hallo Jörg,

> danke für den Hinweis, aber funktioniert bei
> mir nicht wirklich.

Was funktioniert nicht?
Hast Du Dir das Beispiel unter

www.gssg.de -> Visual Basic -> VB.net
-> DataGridView CellFormat

angesehen?
Und was sollte bei diesem Beispiel nicht
funktionieren?


> Ich habe ein Datagridview = /*Statusdatagridview*/
> mit fünf Spalten:
>
> 1. ID
> 2. Fahrzeug
> 3. Status
> 4. Fahrzeugart
> 5. Bemerkungen
>
>
> Jetzt soll das Programm die Spalte Status überprüfen,

Dazu brauchst Du erst mal den Moment, zu dem der
jeweilige Zelleninhalt dargestellt resp. formatiert werden
soll. Also das Ereignis

DGV_CellFormatting

In der Ereignisprozedur DGV_CellFormatting bekommst
Du im Parameter e u.a. den Zeilenindex (RowIndex) und
den Spaltenindex (ColumnIndex) der gerade zu formatierenden
Zelle. Mit Hilfe von RowIndex und einem beiliebigen Spalten
index kannst Du auch die übrigen Zellen der jeweiligen Zeile
adressieren und bei Bedarf entsprechend formatieren
(DGV.Rows(y).Cells(x).Style.

Aber alles das siehst Du im o.g. Beispiel.

0 new messages