删除文本框中的字符

弗兰科·巴尔萨莫(Franqo Balsamo)

我正在尝试配置TextBox,以便在按ctrl+delete键时可以清除TextBox。

这是我的整个代码:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;

namespace pruebaMensajes
{
    public partial class Providus : Form{
        public Providus(){
            InitializeComponent();
            txtUsuario.MaxLength = 20;//max character
            txtContrasena.MaxLength = 16;
            txtContrasena.PasswordChar = '*';//type
        }

        private void Button1_Click(object sender, EventArgs e){//para el login
            string usuario = txtUsuario.Text;
            string contrasena = txtContrasena.Text;
            SqlConnection con = new SqlConnection("stringChain");
            SqlDataAdapter sda = new SqlDataAdapter("SELECT COUNT(*) FROM usuariosProvidus WHERE usuario='" + usuario + "' AND contrasena='" + contrasena + "'", con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            if (dt.Rows[0][0].ToString() == "1"){
                this.Hide();
                new Inicio().Show();
            } else{
                MessageBox.Show("Wrong user o password.","Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void Providus_Load(object sender, EventArgs e){ }

        private void TxtContrasena_KeyPress_1(object sender, KeyPressEventArgs e){//manejar el enter para el login en contraseña
            if ((int)e.KeyChar == (int)Keys.Enter){
                string usuario = txtUsuario.Text;
                string contrasena = txtContrasena.Text;
                SqlConnection con = new SqlConnection("Data Source=PC-HELP;Initial Catalog=apiTiny;Integrated Security=True");
                SqlDataAdapter sda = new SqlDataAdapter("SELECT COUNT(*) FROM usuariosProvidus WHERE usuario='" + usuario + "' AND contrasena='" + contrasena + "'", con);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                if (dt.Rows[0][0].ToString() == "1"){
                    this.Hide();
                    new Inicio().Show();
                }else if(txtUsuario.Text==String.Empty){
                    lblMensaje.BackColor = Color.FromArgb(255, 0, 0);
                    lblMensaje.Text = "Wrong user.";
                    txtUsuario.Focus();
                }else if (txtContrasena.Text == String.Empty){
                    lblMensaje.BackColor = Color.FromArgb(255, 0, 0);
                    lblMensaje.Text = "Wrong password.";
                    txtContrasena.Focus();
                }
            }
        }

        private void TxtUsuario_KeyPress(object sender, KeyPressEventArgs e){//enter para el txt usuario
            if ((int)e.KeyChar == (int)Keys.Enter){
                string usuario = txtUsuario.Text;
                string contrasena = txtContrasena.Text;
                SqlConnection con = new SqlConnection("Data Source=PC-HELP;Initial Catalog=apiTiny;Integrated Security=True");
                SqlDataAdapter sda = new SqlDataAdapter("SELECT COUNT(*) FROM usuariosProvidus WHERE usuario='" + usuario + "' AND contrasena='" + contrasena + "'", con);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                if (dt.Rows[0][0].ToString() == "1"){
                    this.Hide();
                    new Inicio().Show();
                }
                else if (txtUsuario.Text == String.Empty){
                    lblMensaje.BackColor = Color.FromArgb(255, 0, 0);
                    lblMensaje.Text = "Worng user.";
                    txtUsuario.Focus();
                }
                else if (txtContrasena.Text == String.Empty){
                    lblMensaje.BackColor = Color.FromArgb(255, 0, 0);
                    lblMensaje.Text = "Worng password.";
                    txtContrasena.Focus();
                }
            };
        }

        private void TxtUsuario_KeyDown(object sender, KeyEventArgs e){
            if (e.KeyCode == Keys.Delete && e.Modifiers == Keys.ControlKey){
                e.Handled = true;
                txtUsuario.Text = "";
            }
        }

        private void TxtContrasena_KeyDown(object sender, KeyEventArgs e){
            if (e.KeyCode == Keys.Delete && e.Modifiers == Keys.Control){
                e.Handled = true;
                txtContrasena.Text = "";
            }
        }
    }
}

有人知道我该怎么做吗?原因是当我按下按键时ctrl+delete这会添加一个字符而不是清除文本框。我使用keydown事件来实现这一点,但它对我不起作用

在gif中:

在此处输入图片说明

Mong Zhu

伴侣,您只是在使用错误的密钥,和/或在谈论错误的密钥。

尽管您将其称为“删除”,但您正在谈论Backspace键事件。

删除键是一个不同的,将实际工作!

如果您确实想使用退格键,则还需要在代码中检查它:

if (e.Control && e.KeyCode == Keys.Back)
{
    textBox1.Text = "";
    e.Handled = true;
}

不幸的是,这将在文本框中保留最后一个0x7FDELASCII字符。我还没有弄清楚如何彻底摆脱它:)

我建议您使用您的代码,然后按 del按钮

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从文本框中删除文本

来自分类Dev

删除文本框中的选定文本

来自分类Dev

jQuery从文本框中删除焦点

来自分类Dev

删除Javascript中的文本框的问题

来自分类Dev

在提交文本框中删除?

来自分类Dev

从文本框中删除多余的单词

来自分类Dev

在文本框中输入字符的按键?

来自分类Dev

替换文本框中的字符?

来自分类Dev

替换文本框中的字符?

来自分类Dev

允许文本框中的某些字符

来自分类Dev

文本框中的Concat ASCII字符

来自分类Dev

更改文本框中的特定字符

来自分类Dev

替换文本删除文本框中的其余文本

来自分类Dev

如何基于C#中的数字上下值从文本框中删除字符?

来自分类Dev

单击按钮时,从文本框中删除最后一个字符

来自分类Dev

如何从文本框/标签中删除文本而不会闪烁

来自分类Dev

按键事件并删除文本框和RichTextBox中的文本

来自分类Dev

c#从文本框中删除行,并删除空行

来自分类Dev

为什么从其他文本框中删除值后仍然禁用文本框

来自分类Dev

动态删除文本框

来自分类Dev

计算文本框中特定字符之后的字符数

来自分类Dev

从控件列表中删除多个文本框

来自分类Dev

为什么无法删除我的文本框中的值?

来自分类Dev

在ExtJS 5中:如何删除文本框的边框

来自分类Dev

如何在WPF文本框中删除多余的边框?

来自分类Dev

删除多行文本框中的特定行

来自分类Dev

从文本框中删除数字会产生错误

来自分类Dev

在jquery mobile中删除文本框阴影的问题?

来自分类Dev

从HTML源中删除文本框元素