Usuário com melhor resposta
DataGridView Evento Click

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
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
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.
-
-
-
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 FrmCancelaAtendFrmCancelaAtend.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 IfFrmCancelaAtend.ShowDialog()ElseIf AgendaDataGridView1.CurrentRow.Cells(5).Value.ToString() <> "" Then
MsgBox("Esse Atendimento já foi Baixado!!!", MsgBoxStyle.Information)
Exit Sub
End IfIf MsgBox("Você quer alterar o Prof dessa Sala, nesse horário?", MsgBoxStyle.YesNo, "Alerta!") = MsgBoxResult.Yes ThenFrmAltProfAg.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 IfIf MsgBox("Você quer incluir atendimento nesse horário?", MsgBoxStyle.YesNo, "Alerta!") = MsgBoxResult.Yes ThenIf 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 IfDim 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 IfEnd If
End Sub -
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