Změna formátu buňky v DataGridView   zodpovězená otázka

VB.NET

Dobrý den, vím, že to tu někde je, ale nemohu to najít. Potřeboval bych navést jak udělat v DataGridView jinou barvu buňky v případě, že její hodnota bude menší než-li 0.

Děkuji

VB.NET Visual Studio 2012

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Už je to dlouho co jsem dělal ve Windows.Forms ale šel bych na to nějak takhle

Private Sub DataGridView_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView.CellEndEdit
    If DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value < 0 Then
        Dim CellStyle = New DataGridViewCellStyle()
        CellStyle.BackColor = Color.FromArgb(255, 242, 243)

        DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Style = CellStyle
        Else
        DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Style = Nothing
    End If
End Sub
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dík funguje, ale potřeboval bych aby to vyhodnocovalo hned při vykreslení DataGridView. Ne až po editaci. To znamená když nastavím pevný Cell třeba 7 jak nadefinuji právě loudovaný Row?

Dík

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak to je asi nejlepší dělat v události RowPrePaint nebo CellFormatting

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Bohužel se mi nedaří nadefinovat řádek.

DataGridView.CurentRows.Cells(7).Style = CellStyle

Nefunguje

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V e události RowPrePaint je index řádku, který se zrovna vykresluje.

Private CellStyle As DataGridViewCellStyle

Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    CellStyle = New DataGridViewCellStyle()
    CellStyle.BackColor = Color.FromArgb(255, 242, 243)
End Sub

Private Sub DataGridView_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs) Handles DataGridView.RowPrePaint
    If DataGridView.Rows(e.RowIndex).Cells(7).Value < 0 Then
        DataGridView.Rows(e.RowIndex).Cells(7).Style = CellStyle
    Else
        DataGridView.Rows(e.RowIndex).Cells(7).Style = Nothing
    End If
End Sub
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky moc. Takto to funguje. Nevím kde jsem dělal chybu. Díky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Příště označte odpověď tlačítkem Odpovídá na dotaz

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback