Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

esquima

[RESOLVIDO][vb.net] Colorir linhas de uma datagrid

Mensagens Recomendadas

Weasel    3
Weasel

Faz assim

No while em que preenches a Datagrid, ou coisa similar mete assim:

If (DataGridView1.Item("estado", i).Value.ToString() = "Fechado") Then
DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Red
End If

Nota: eu usei a var i como contador do index da linha actual.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Asgorath    0
Asgorath
Public Class DataGridColoredTextBoxColumn
     Inherits DataGridTextBoxColumn

     Public Sub New()
     End Sub

     Protected Overloads Overrides Sub Paint(ByVal g As Graphics, ByVal bounds As Rectangle, ByVal source As CurrencyManager, ByVal rowNum As Integer, ByVal backBrush As Brush, ByVal foreBrush As Brush, ByVal alignToRight As Boolean)

     ' the idea is to conditionally set the foreBrush and/or backbrush
     ' depending upon some crireria on the cell value
     ' Here, we color anything that begins with a letter higher than 'F'
     Try
          Dim o As Object
          o = Me.GetColumnValueAtRow(source, rowNum)
          If (Not (o) Is Nothing) Then
               Dim c As Char
               c = CType(o, String).Substring(0, 1)
               If (c > "F") Then
                     ' could be as simple as
                    ' backBrush = new SolidBrush(Color.Pink);
                    ' or something fancier...
                    backBrush = New LinearGradientBrush(bounds, Color.FromArgb(255, 200, 200), Color.FromArgb(128, 20, 20), LinearGradientMode.BackwardDiagonal)
                    foreBrush = New SolidBrush(Color.White)
               End If
          End If
          Catch ex As Exception
               ' empty catch
          Finally
               ' make sure the base class gets called to do the drawing with
                ' the possibly changed brushes
               MyBase.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight)
          End Try

     End Sub
End Class 

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Weasel    3
Weasel

Não tinha reparado que era DataGrid e não DataGridView...

Vb.net 2003 realmente é bem mais complicado de fazer isso

UPGRADE para VB.NET 2005!!!!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
esquima    0
esquima

Poisss..ja vi que e bem mais dificil...vou passar para 2005 depois deste projecto..agora n vem convem fazer o upgrade...entrentanto continuo entalado com isto  :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gooden    0
Gooden

porque é que em vez de usares uma datagrid não usas uma listview?

pelo menos e um concelho que te dou que fica muito melhor esteticamente :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
esquima    0
esquima

Pessoal...mudei para o vb.2005..bem mais facil trabalhar com as datagridview...ja consegui me orientar a colorir as linhas conforme o meu estado=fechado....se no futuro alguem precisar apitem  :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade