Usuário com melhor resposta
Erro

Pergunta
-
Pessoal, Boa Tarde!!
Quando mando rodar o formulario apareço o seguinte erro:
Erro ao criar o formulário. Consulte Exception.InnerException para obter detalhes. O erro é: Não é possível converter um objeto do tipo 'System.EventArgs' no tipo 'System.Windows.Forms.KeyPressEventArgs'.
Será que vocês poderiam me ajudar?
Respostas
-
O erro está em seu ultimo bloco de codigo, você não pode utilizar o evento TextChanged com eventos de teclados, para evento de teclado utilize "KeyDown", "KeyUp"... Faça essa alteração que vai funcionar mas vai perder esse seu evento, para esse evento faça no evento de teclado como citei :
Private Sub txtDataNasc_MaskInputRejected(ByVal sender As Object, e As System.EventArgs) Handles txtDataNasc.TextChanged ' FormataData(txtDataNasc, e.KeyChar) End Sub End Class
- Sugerido como Resposta Ricardo Barbosa Cortes segunda-feira, 23 de junho de 2014 10:43
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 23 de junho de 2014 16:55
Todas as Respostas
-
-
Imports MySql.Data.MySqlClient
Public Class frmCadpessoas
Public caminho As String
Public codigo As Integer
Private Sub btnBuscaFoto_Click(sender As System.Object, e As System.EventArgs) Handles btnBuscaFoto.Click
Dim arquivo As New OpenFileDialog()
If arquivo.ShowDialog = System.Windows.Forms.DialogResult.OK Then
caminho = arquivo.FileName.ToString()
pctFoto.Image = Image.FromFile(caminho)
End If
End Sub
Public Sub LimpaTexts()
txtDataNasc.Clear()
txtNome.Clear()
txtTel.Clear()
txtNome.Focus()
Try
dtR = comando.ExecuteReader
If dtR.Read Then
txtNome.Text = dtR("nome").ToString
txtTel.Text = dtR("cel").ToString
txtDataNasc.Text = dtR("dtnasc").ToString
codigo = dtR("codPessoa")
Else
MessageBox.Show("Pessoa não cadastrada")
End If
Catch
MessageBox.Show(" ERRO DURANTE A PESQUISA")
End Try
End Sub
Private Sub btnVoltar_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVoltar.Click
frmPrincipal.Show()
End Sub
Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvar.Click
Dim sql As String
Try
AbreBaseDados()
sql = "insert into tbl_pessoa (nome,telefone,datadenascimento,sexo,cpf,endereco) values (@p1,@p2,@p3,@p4,@p5,@p6)"
comando = New MySqlCommand(sql, conexao)
comando.Parameters.AddWithValue("@p1", txtNome.Text)
comando.Parameters.AddWithValue("@p2", txtTel.Text)
comando.Parameters.AddWithValue("@p3", txtDataNasc.Text)
comando.Parameters.AddWithValue("@p3", cmbSexo.Text)
comando.Parameters.AddWithValue("@p3", txtCpf.Text)
comando.Parameters.AddWithValue("@p3", txtEndereço.Text)
comando.ExecuteNonQuery()
MessageBox.Show("Dados cadastrados com sucesso")
Catch ex As Exception
MessageBox.Show("Erro na inclusão de cliente")
End Try
If txtNome.Text = "" Or txtTel.Text = "" Then
MessageBox.Show("Os campos nome e telefone são Obrigatórios")
txtNome.Focus()
Exit Sub
End If
End Sub
Private Sub btnLimpar_Click(sender As System.Object, e As System.EventArgs) Handles btnLimpar.Click
LimpaTexts()
End Sub
Private Sub txtDataNasc_MaskInputRejected(ByVal sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtDataNasc.TextChanged
FormataData(txtDataNasc, e.KeyChar)
End Sub
End Class -
O erro está em seu ultimo bloco de codigo, você não pode utilizar o evento TextChanged com eventos de teclados, para evento de teclado utilize "KeyDown", "KeyUp"... Faça essa alteração que vai funcionar mas vai perder esse seu evento, para esse evento faça no evento de teclado como citei :
Private Sub txtDataNasc_MaskInputRejected(ByVal sender As Object, e As System.EventArgs) Handles txtDataNasc.TextChanged ' FormataData(txtDataNasc, e.KeyChar) End Sub End Class
- Sugerido como Resposta Ricardo Barbosa Cortes segunda-feira, 23 de junho de 2014 10:43
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 23 de junho de 2014 16:55
-