如何使用0x08

时间:2012-02-10 12:41:37

标签: c# .net winforms textarea ascii

如何在WinForms 0x08中以编程方式使用退格TextArea的ASCII值?我尝试了一个控制台程序:

Console.WriteLine("Hello" + (char)0x8 + "World");

它显示出我的预期:

  

地狱世界

我尝试在WinForms TextArea中填写值:

txt.Text += "Hello" + (char)0x8 + "World";

它显示如下:

enter image description here

使用使用键盘的事件来触发除之外的其他事件,以使用值0x8单独使用不会访问任何文本字段事件来显示正常显示的内容。通过编程方式在文本字段中打印“HellWorld”。

3 个答案:

答案 0 :(得分:1)

字符和按键不直接相关。您必须在文本框中输入Backspace按键才能删除字符。

答案 1 :(得分:0)

如果您想模拟某人在文本框中输入内容,那么您可以使用SendKeys.Send()进行操作,例如:

txt.Select();
SendKeys.Send("hello");
SendKeys.Send(((char)0x8).ToString()); // send backspace using 0x08
SendKeys.Send("{BS}"); // send backspace using predefined code
SendKeys.Send("world");

但预处理字符串似乎更简单(更安全),例如:

var str = "hello";
txt.Text += str.Substring(0, str.Length-1);

注意:SendKeys.Send将按键发送到活动窗口。因此,如果在上面的代码运行时另一个窗口获得焦点,那么击键可能会在另一个窗口中结束。

答案 2 :(得分:-2)

为瘦客户端引入了退格符,该瘦客户端逐字符地向服务器发送输入,以允许最终用户修复已发送的拼写错误。现代应用程序通常对此类字符没有用处,因为客户端应用程序现在通常只等到用户在将数据发送到服务器之前完成输入数据。

这就是为什么TextBox控件不支持它,也可能是为什么人们想知道你为什么需要它。

无论如何,在设置TextBox的Text之前,您需要自己预处理数据。例如,您可以使用正则表达式来模拟此行为。