none
Chamar um metodo? RRS feed

  • Pergunta

  • Tenho esse metodo que muda a cor das fontes, queria chamar esse metodo em outro ponto do form, como seria isso?

    Private Sub DGretorno_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DGretorno.CellFormatting

            If Me.DGretorno.Columns(e.ColumnIndex).Name = "STATUSDataGridViewTextBoxColumn1" Then
                If e IsNot Nothing Then
                    If e.Value IsNot Nothing Then
                        Try
                            If e.Value = "2" Then
                                DGretorno.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Orange 'e.cellstyle.forecolor
                            End If
                            If e.Value = "3" Then
                                DGretorno.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Red
                            End If
                        Catch ex As FormatException
                        End Try
                    End If
                End If
            End If

    quinta-feira, 23 de agosto de 2012 13:11

Respostas

  • Tucão, no caso esse é um evento, você até consegue disparar um evento em outra parte do form, mas no seu caso eu não sei se o evento vai funcionar perfeitamente por causa dos parâmetros que ele espera. Você pode criar um método para varrer o DataGrid.

     Public Sub ChangeRowColor()  

          For Each row As DataGridViewRow In Me.DataGridView1.Rows     

           If Not row.IsNewRow Then      

              If Not row.Cells(1).Value Is DBNull.Value Then     

                   If row.Cells(1).Value Is "Yes" Then        

                    row.DefaultCellStyle.BackColor = Color.Red     

                   End If          

          End If       

         End If      

      Next   

    End Sub



    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta RJCERRI segunda-feira, 27 de agosto de 2012 18:00
    quinta-feira, 23 de agosto de 2012 13:59

Todas as Respostas

  • Tucão, no caso esse é um evento, você até consegue disparar um evento em outra parte do form, mas no seu caso eu não sei se o evento vai funcionar perfeitamente por causa dos parâmetros que ele espera. Você pode criar um método para varrer o DataGrid.

     Public Sub ChangeRowColor()  

          For Each row As DataGridViewRow In Me.DataGridView1.Rows     

           If Not row.IsNewRow Then      

              If Not row.Cells(1).Value Is DBNull.Value Then     

                   If row.Cells(1).Value Is "Yes" Then        

                    row.DefaultCellStyle.BackColor = Color.Red     

                   End If          

          End If       

         End If      

      Next   

    End Sub



    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta RJCERRI segunda-feira, 27 de agosto de 2012 18:00
    quinta-feira, 23 de agosto de 2012 13:59
  • Eu abro o form e nem passa por essa private, tentei também colocar esse codigo na DGretorno_DefaultCellStyleChanged mas também nem passa la
    quinta-feira, 23 de agosto de 2012 14:10
  • Entao deveria colocar o codido desse metodo

    Private Sub DGretorno_CellFormatting(ByVal sender As Object, ByVal e As 

    em outro evento?

    quinta-feira, 23 de agosto de 2012 17:38
  • Na verdade assim tucão, vc vai ter que varrer a sua grid da mesma forma que eu coloquei naquele método, claro que você vai customizar para as suas necessidades, vc tentou usar daquele jeito?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quinta-feira, 23 de agosto de 2012 17:41
  • O ChangeRowColor()? Tentei mas não deu certo
    quinta-feira, 23 de agosto de 2012 19:09
  • Mas como eu varreria ela?
    quinta-feira, 23 de agosto de 2012 19:10
  • Assim não deu certo?

    For Each row As DataGridViewRow In Me.DataGridView1.Rows    

            If Not row.IsNewRow Then        

            If Not row.Cells(1).Value Is DBNull.Value Then    

                    If row.Cells(1).Value Is "Yes" Then     

                       row.DefaultCellStyle.BackColor = Color.Red 

                       End If             

       End If      



    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quinta-feira, 23 de agosto de 2012 19:13
  • Eu fiz assim

    If Not row.IsNewRow Then
                    If Not row.Cells("STATUSDataGridViewTextBoxColumn1").Value Is DBNull.Value Then
                        If row.Cells("STATUSDataGridViewTextBoxColumn1").Value Is "3" Then
                            row.DefaultCellStyle.ForeColor = Color.Red
                        End If
                    End If
                End If

    mas ele não entra no if

    quinta-feira, 23 de agosto de 2012 20:20
  • acho que falta igual depois do value.

     If row.Cells("STATUSDataGridViewTextBoxColumn1").Value ="3" Then

    Tenta desta forma.


    http://malange-levi.blogspot.co.uk/

    sexta-feira, 24 de agosto de 2012 08:09
    Moderador
  • Também não da certo, olhei agora no debug e vi que ele entra mas não altera as cores, as cores só mudam quando eu clico no datagrid e movo a seta para o lado.
    sexta-feira, 24 de agosto de 2012 15:13
  • Cara, sabe como isso aqui funcionou? As colunas no datagrid não aparecem todas na tela, eu tenho que andar com o cursor para o lado, percebi que as cores mudavam assim que a coluna status ficava a vista, ai fiz um teste e mudei de posição a coluna, não é que esta funcionando, sei que o certo não é esse mas pelo menos sai desse ponto.  Valeu

    Abs

    segunda-feira, 27 de agosto de 2012 18:00
  • Powwww parcero, que beleza, que bom que conseguiu, parabens!!!

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    segunda-feira, 27 de agosto de 2012 18:01