none
C# Mudar TAB para ENTER. RRS feed

  • Pergunta

  • Ola, Sou novo por aqui queria ver se podem me ajudar, tenho uma situação assim uma tela de login q quando eu dou enter no campo da senha e ela é valida no bando de dados ele preenche um campo com o nome de usuário, porem quando dou TAB não da certo, aqui esta um trecho do código.

    private void edtSenha_KeyPress(object sender, KeyPressEventArgs e)
          {
              if (e.KeyChar == 9 || e.KeyChar == 13)
              {
                  e.Handled = true;
                  cmbEmpresa.Focus();
                  try
                  {
                      AcessoBanco.CarregaMYSQL();
                      MySqlCommand comando = new MySqlCommand();
                      comando.Connection = AcessoBanco.mConn;
                      comando.CommandText = "select * from usuarios where SN_USUARIO='" + edtSenha.Text + "'";
                      MySqlDataReader dr = comando.ExecuteReader();
                      DataTable dt = new DataTable();
                      dt.Load(dr);
                      cmbNome.DisplayMember = "NM_USUARIO";
                      cmbNome.DataSource = dt;
                  }
                  catch (MySqlException sqle)
                  {
                      MessageBox.Show("Falha ao efetuar a conexão. Erro: " + sqle);
                  }
                  finally
                  {
                      AcessoBanco.mConn.Close();
                      AcessoBanco.mConn.Dispose();
                  }
              }
          }

    Muito Obrigado.

    sábado, 15 de junho de 2019 21:48

Respostas

  • Bom dia Cristiano,

    No seu TextBox busque o evento Leave e adicione seu código.

    Exemplo:

    private void txtbox_Leave(object sender, EventArgs e)
    {
               // codigo
    } 

    Basicamente, quando o seu TextBox perder o foco "focus", ele vai rodar esse evento.

    Abraços


    Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.

    • Sugerido como Resposta IgorFKModerator segunda-feira, 17 de junho de 2019 13:07
    • Marcado como Resposta Cristiano Rogoy segunda-feira, 17 de junho de 2019 20:14
    segunda-feira, 17 de junho de 2019 11:31
  • Vamos lá,

    O Leave será disparado caso o TextBox EdtSenha perder o foco. Você não precisa colocar condição de e.Keychar nele, uma vez que ele valeria pelo "TAB".

    Mantenha o código do evento KeyPress somente com o Enter. Ok?

    Pra simplificar.

    No _Leave, tire os IF e o e.Handled que valida o keypress, não é necessário. 

    No _KeyPress, deixe a condição somente se o enter for pressionado.


    Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.


    • Editado Alvesanderson segunda-feira, 17 de junho de 2019 16:34 adendo
    • Marcado como Resposta Cristiano Rogoy segunda-feira, 17 de junho de 2019 20:14
    segunda-feira, 17 de junho de 2019 16:31
  • Maravilha!!

    Qualquer coisa, chama aí!

    Abraços


    Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.

    • Marcado como Resposta Cristiano Rogoy sábado, 5 de outubro de 2019 00:41
    segunda-feira, 17 de junho de 2019 20:26

Todas as Respostas

  • Bom dia Cristiano,

    No seu TextBox busque o evento Leave e adicione seu código.

    Exemplo:

    private void txtbox_Leave(object sender, EventArgs e)
    {
               // codigo
    } 

    Basicamente, quando o seu TextBox perder o foco "focus", ele vai rodar esse evento.

    Abraços


    Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.

    • Sugerido como Resposta IgorFKModerator segunda-feira, 17 de junho de 2019 13:07
    • Marcado como Resposta Cristiano Rogoy segunda-feira, 17 de junho de 2019 20:14
    segunda-feira, 17 de junho de 2019 11:31
  • Tentei isso porem não da certo pq esse "EventArgs e" não tem o KeyChar.
    segunda-feira, 17 de junho de 2019 16:17
  • Vamos lá,

    O Leave será disparado caso o TextBox EdtSenha perder o foco. Você não precisa colocar condição de e.Keychar nele, uma vez que ele valeria pelo "TAB".

    Mantenha o código do evento KeyPress somente com o Enter. Ok?

    Pra simplificar.

    No _Leave, tire os IF e o e.Handled que valida o keypress, não é necessário. 

    No _KeyPress, deixe a condição somente se o enter for pressionado.


    Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.


    • Editado Alvesanderson segunda-feira, 17 de junho de 2019 16:34 adendo
    • Marcado como Resposta Cristiano Rogoy segunda-feira, 17 de junho de 2019 20:14
    segunda-feira, 17 de junho de 2019 16:31
  • Entendido, Muito Obrigado !!
    segunda-feira, 17 de junho de 2019 20:14
  • Maravilha!!

    Qualquer coisa, chama aí!

    Abraços


    Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta", ou se foi útil, "Vote". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.

    • Marcado como Resposta Cristiano Rogoy sábado, 5 de outubro de 2019 00:41
    segunda-feira, 17 de junho de 2019 20:26