C# 如何从键盘输入的文本框中禁止空格、空白、(“uquot;”)字符
如何禁止通过键盘(WPF,C)输入的文本框中出现空格、空白(C# 如何从键盘输入的文本框中禁止空格、空白、(“uquot;”)字符,c#,wpf,keypress,C#,Wpf,Keypress,如何禁止通过键盘(WPF,C)输入的文本框中出现空格、空白(“\ucode>)字符 我按代码尝试: Regex regex = new Regex(@"^[A-Za-z0-9\[\]/!$%^&*()\-_+{};:'£@#.?]*$"); 但这部分代码不允许所有字符,但不允许空格。您可以添加PreviewKeyDown处理程序: private void textBox_PreviewKeyDown(object sender, KeyEventArgs e) { if (
“\ucode>)字符
我按代码尝试:
Regex regex = new Regex(@"^[A-Za-z0-9\[\]/!$%^&*()\-_+{};:'£@#.?]*$");
但这部分代码不允许所有字符,但不允许空格。您可以添加PreviewKeyDown
处理程序:
private void textBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
e.Handled = true;
}
}
现在,您的文本框将忽略空格。根据您的目标,另一个选项是处理预览输出:
{
//...
TextBox tb = new TextBox();
tb.PreviewTextInput += Tb_PreviewTextInput;
}
private void Tb_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
if (e.Text == " ")
e.Handled = true;
base.OnPreviewTextInput(e);
}
例如,如果要停止复制粘贴空间,建议这样做
另一方面,如果要在插入文本框之前删除文本中的所有空格,则以下操作可能会有所帮助:
// ...
TextBox tb = new TextBox();
tb.TextChanged += Tb_TextChanged;
// ...
bool _changing;
private void Tb_TextChanged(object sender, TextChangedEventArgs e)
{
if (_changing)
return;
_changing = true;
TextBox tb = (TextBox)sender;
string tx = tb.Text;
while (tx.Contains(" "))
tx = tx.Replace(" ", string.Empty);
tb.Text = tx;
_changing = false;
}
在这种情况下,请参见。我也尝试使用␣ , 但一切都没有改变。文本框等是否接受文本框中的空格?如果您想在键入时这样做,请。。。使用KeyPress
事件,如果Key为32或Key.Space,则e.Handled=true<代码>\u
是下划线,不是空白。PreviewTimeput不会在空格上触发。第一个解决方案行不通。