none
DataGridView Evento Click RRS feed

  • Pergunta

  • Pessoal, mais um enrosco !!!

    Tenho um form de consulta onde abro um datagrid com as informações da Tabela "X" que preenchem de 1 a 16 linhas desse datagrid, dependendo do que está cadastrado.

    Usei o evento Click, para quando o usuário clicar em alguma linha, abra um outro form com os dados complementares.

    O que está ocorrendo: Quando o datagrid não é totalmente preenchido, ou seja, fica com menos de 16 linhas, fica um espaço em branco. O usuário clica nesse espaço e dá um erro de instância. O tamanho desse datagrid é fixo e não pode ser variado.

    Alguém poderia me ajudar, como previno/trato esse click em local não preenchido ?

    Aguardo as valiosas ajudas.

    Abs

    Roberto

    quarta-feira, 10 de abril de 2019 20:22

Respostas

  • Olá, tenta o código...

    verifica se tiver null e return...

    if (AgendaDataGridView1.CurrentRow == null || AgendaDataGridView1.CurrentRow.Cells(1) == null) return;


    Se ajudou, marque como resposta! Obrigado.

    • Marcado como Resposta RViveiros segunda-feira, 24 de junho de 2019 13:36
    sexta-feira, 12 de abril de 2019 03:08

Todas as Respostas

  • Olá, ao meu ver, no evento Click não tem problema, pois as linhas estão criadas, oq ocorre é validar o conteúdo no inicio do evento Click, e se for inválido sai do evento... se não ajudou, posta código e erro ocorrido...

    Se ajudou, marque como resposta! Obrigado.

    quinta-feira, 11 de abril de 2019 11:09
  • Olá Leonardo, obrigado pela atenção em responder.

    Poderia me informar qual a validação que devo fazer do conteúdo ?

    Aguardo

    Abs

    Roberto

    sexta-feira, 12 de abril de 2019 01:17
  • Olá, posta o código do método...

    Se ajudou, marque como resposta! Obrigado.

    sexta-feira, 12 de abril de 2019 01:57
  • Olá Leonardo, segue o código do Datagrid com o evento Click

    Qualquer dúvida, me avise.

    Abs

    Private Sub AgendaDataGridView1_Click(sender As Object, e As EventArgs) Handles AgendaDataGridView1.Click
            If AgendaDataGridView1.CurrentRow.Cells(1).Value.ToString() <> "" And AgendaDataGridView1.CurrentRow.Cells(5).Value.ToString() = "Não" Then
                Dim form As New FrmCancelaAtend
                FrmCancelaAtend.txthora.Text = AgendaDataGridView1.CurrentRow.Cells(0).Value.ToString()
                FrmCancelaAtend.txtnome.Text = AgendaDataGridView1.CurrentRow.Cells(1).Value.ToString()
                FrmCancelaAtend.txtprof.Text = AgendaDataGridView1.CurrentRow.Cells(2).Value.ToString()
                FrmCancelaAtend.txtdata.Text = AgendaDataGridView1.CurrentRow.Cells(4).Value.ToString()
                FrmCancelaAtend.txtid.Text = AgendaDataGridView1.CurrentRow.Cells(6).Value.ToString()
                FrmCancelaAtend.txtsenha.Text = AgendaDataGridView1.CurrentRow.Cells(7).Value.ToString()
                FrmCancelaAtend.txttoken.Text = AgendaDataGridView1.CurrentRow.Cells(8).Value.ToString()
                FrmCancelaAtend.txtmes.Text = AgendaDataGridView1.CurrentRow.Cells(9).Value.ToString()
                FrmCancelaAtend.txtguia.Text = AgendaDataGridView1.CurrentRow.Cells(10).Value.ToString()
                FrmCancelaAtend.txtdtguia.Text = AgendaDataGridView1.CurrentRow.Cells(11).Value.ToString()
                FrmCancelaAtend.txtatend.Text = AgendaDataGridView1.CurrentRow.Cells(5).Value.ToString()
                FrmCancelaAtend.txtnumatend.Text = AgendaDataGridView1.CurrentRow.Cells(13).Value.ToString()
                If FrmCancelaAtend.txtnumatend.Text < "2" And FrmCancelaAtend.txtnome.Text <> "" Then
                    MsgBox("Este Cliente possuiu somente mais 1 autorização!" + vbCrLf + "Informe o Cliente para trazer nova Guia!", MsgBoxStyle.Information, "Alerta!")
                End If
                FrmCancelaAtend.ShowDialog()
            Else
                If AgendaDataGridView1.CurrentRow.Cells(5).Value.ToString() <> "" Then
                    MsgBox("Esse Atendimento já foi Baixado!!!", MsgBoxStyle.Information)
                    Exit Sub
                End If
                If MsgBox("Você quer alterar o Prof dessa Sala, nesse horário?", MsgBoxStyle.YesNo, "Alerta!") = MsgBoxResult.Yes Then
                    FrmAltProfAg.tbx_dtini.Text = AgendaDataGridView1.CurrentRow.Cells(4).Value.ToString()
                    FrmAltProfAg.tbc_horario.Text = AgendaDataGridView1.CurrentRow.Cells(0).Value.ToString()
                    FrmAltProfAg.tbc_sala.Text = AgendaDataGridView1.CurrentRow.Cells(3).Value.ToString()
                    FrmAltProfAg.nome_profi.Text = AgendaDataGridView1.CurrentRow.Cells(2).Value.ToString()
                    FrmAltProfAg.ShowDialog()
                End If
                If MsgBox("Você quer incluir atendimento nesse horário?", MsgBoxStyle.YesNo, "Alerta!") = MsgBoxResult.Yes Then
                    If AgendaDataGridView1.CurrentRow.Cells(2).Value.ToString() = "Sem Prof" Then
                        MsgBox("É necessário ter um Profissional nessa Sala e horário!!!", MsgBoxStyle.Information)
                        Exit Sub
                    End If
                    Dim form As New FrmIncAtend
                    FrmIncAtend.tbx_dtinicio.Text = AgendaDataGridView1.CurrentRow.Cells(4).Value.ToString()
                    FrmIncAtend.tbc_horainc.Text = AgendaDataGridView1.CurrentRow.Cells(0).Value.ToString()
                    FrmIncAtend.tbc_sala.Text = AgendaDataGridView1.CurrentRow.Cells(3).Value.ToString()
                    FrmIncAtend.tbc_prof.Text = AgendaDataGridView1.CurrentRow.Cells(2).Value.ToString()
                    FrmIncAtend.ShowDialog()
                End If
            End If
        End Sub

    sexta-feira, 12 de abril de 2019 02:27
  • Olá, tenta o código...

    verifica se tiver null e return...

    if (AgendaDataGridView1.CurrentRow == null || AgendaDataGridView1.CurrentRow.Cells(1) == null) return;


    Se ajudou, marque como resposta! Obrigado.

    • Marcado como Resposta RViveiros segunda-feira, 24 de junho de 2019 13:36
    sexta-feira, 12 de abril de 2019 03:08