DATAGRIDVIEW CELULA FORA DE VISAO SCROLBAR
                    olá amigos,
como identifico que uma célula, ou coluna não esta mais visÃvel, quando se arrasta o scrowbar?
desde ja abradeço
            como identifico que uma célula, ou coluna não esta mais visÃvel, quando se arrasta o scrowbar?
desde ja abradeço
                    Segue um exemplo:
            [ô][ô][ô] <summary>
[ô][ô][ô] Crie um formulário padrão 
[ô][ô][ô] (WinForms | StartPosition = CenterScreen) com: 
[ô][ô][ô] - Um Label (Label1 | Dock = Button) 
[ô][ô][ô] - Um DataGridView (DataGridView1 | Dock = Fill)
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>
Public Class Form1
    [ô][ô][ô] <summary>
    [ô][ô][ô] Tabela para preenchimento da grade.
    [ô][ô][ô] </summary>
    [ô][ô][ô] <remarks></remarks>
    Private dtb As DataTable = Nothing
    [ô][ô][ô] <summary>
    [ô][ô][ô] Na carga do formulário, vincular 
    [ô][ô][ô] a tabela á grade, selecionar a
    [ô][ô][ô] linha 100 e torná-la a 1ª visivel.
    [ô][ô][ô] </summary>
    [ô][ô][ô] <param name=[Ô]sender[Ô]></param>
    [ô][ô][ô] <param name=[Ô]e[Ô]></param>
    [ô][ô][ô] <remarks></remarks>
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        Me.Text = [Ô]Testes com DataGridView[Ô]
        Me.Label1.SendToBack()
        CriaTabela()
        With Me.DataGridView1
            .BringToFront()
            .DataSource = dtb
            .Rows(100).Selected = True
            .FirstDisplayedCell = .Rows(100).Cells(0)
        End With
    End Sub
    [ô][ô][ô] <summary>
    [ô][ô][ô] Rotina para a criar e popular a tabela.
    [ô][ô][ô] </summary>
    [ô][ô][ô] <remarks></remarks>
    Private Sub CriaTabela()
        dtb = New DataTable([Ô]Tabela[Ô])
        With dtb
            With .Columns
                .Add([Ô]Código[Ô], GetType(Integer))
                .Add([Ô]Texto[Ô], GetType(String))
                .Add([Ô]Data[Ô], GetType(DateTime))
            End With
            .PrimaryKey = {.Columns(0)}
            With .Rows
                For iPos As Integer = 1 To 200
                    Dim a As Integer = iPos
                    Dim b As String = String.Format([Ô]Texto {0}[Ô], iPos)
                    Dim c As Date = DateAdd(DateInterval.Day, iPos, Now)
                    Dim r As DataRow = .Add(a, b, c)
                    r.AcceptChanges()
                Next
            End With
        End With
    End Sub
    [ô][ô][ô] <summary>
    [ô][ô][ô] Ao mover a barra de rolagem, verifica se as 
    [ô][ô][ô] linhas 0 e 100 estão visÃveis
    [ô][ô][ô] </summary>
    [ô][ô][ô] <param name=[Ô]sender[Ô]></param>
    [ô][ô][ô] <param name=[Ô]e[Ô]></param>
    [ô][ô][ô] <remarks></remarks>
    Private Sub DataGridView1_Scroll(sender As Object, _
                                     e As ScrollEventArgs) Handles _
                                     DataGridView1.Scroll
        Dim r1 As DataGridViewRow = DataGridView1.Rows(0)
        Dim r2 As DataGridViewRow = DataGridView1.Rows(100)
        Dim msg As String = [Ô]Linha 0: {0}{1}Linha 100: {2}[Ô]
        Dim v1 As String = IIf(IsRowVisible(r1) = True, [Ô]VisÃvel[Ô], [Ô]Oculta[Ô])
        Dim v2 As String = IIf(IsRowVisible(r2) = True, [Ô]VisÃvel[Ô], [Ô]Oculta[Ô])
        Label1.Text = String.Format(msg, v1, vbNewLine, v2)
    End Sub
    [ô][ô][ô] <summary>
    [ô][ô][ô] Função para verificar se uma 
    [ô][ô][ô] DataGridViewRow está visÃvel.
    [ô][ô][ô] </summary>
    [ô][ô][ô] <param name=[Ô]dgr[Ô]>DataGridViewRow</param>
    [ô][ô][ô] <returns>Verdadeiro ou Falso</returns>
    [ô][ô][ô] <remarks></remarks>
    Public Function IsRowVisible(ByRef dgr As DataGridViewRow) As Boolean
        Dim ret As Boolean = False
        Try
            [ô]Grade da linha
            Dim dgv As DataGridView = dgr.DataGridView
            [ô]Posição da linha
            Dim posAtual As Integer = dgr.Cells(0).RowIndex
            [ô]Primeira linha visÃvel
            Dim VisivelA As Integer = dgv.FirstDisplayedCell.RowIndex
            [ô]Quantidade de linhas visÃveis
            Dim Visiveis As Integer = dgv.DisplayedRowCount(False)
            [ô]Última linha visÃvel
            Dim VisivelN As Integer = (VisivelA + Visiveis)
            [ô]Está visÃvel ?
            ret = (posAtual >= VisivelA) AndAlso (posAtual <= VisivelN)
        Catch ex As Exception
            ret = False
        End Try
        Return ret
    End Function
End Class
                
                    Perfeito professor!!!  valeu brigadão!
                
            
                        Tópico encerrado , respostas não são mais permitidas