防止C#TextBox中的打印空间

时间:2016-06-22 23:46:28

标签: c# winforms textbox

我想创建一个不允许输入空格的TextBox。我用键盘禁用了键入空格:

void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Space)
    {
        e.Handled = true;
    } 
}

但是如果用户使用“Hello world”这样的空格复制一个字符串,他可以将其粘贴到TextBox中,并且会有空格。

3 个答案:

答案 0 :(得分:2)

您可以为TextChanged添加TextBox事件处理程序,并在该TextChanged事件中添加以下代码:

TextBox1.Text = TextBox1.Text.Replace(" ", "");

答案 1 :(得分:2)

更好的控制方法

 private void textBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) {                
            removeSpaces();
        }
        //Handle Ctrl+Ins
        if (e.KeyCode == Keys.Control && e.KeyCode == Keys.Insert)
        {
            removeSpaces();
        } 
    }

private void removeSpaces()
    {
        textBox.Text = textBox.Text.Replace(" ", string.Empty);
    }

//控制鼠标右键单击

private void textBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                textBox1.ContextMenu = new ContextMenu();
            }
        }

所有

的SIMPLE解决方案
private void textBox1_TextChanged(object sender, EventArgs e)
    {
        textBox1.Text = textBox1.Text.Replace(" ", string.Empty);
    }

答案 2 :(得分:0)

一种简单的方法是在输入数据后删除空格。喜欢:

txt_Box.Text = txt_Box.Text.Replace(" ","");