Как использовать 0x08 - PullRequest
0 голосов
/ 10 февраля 2012

Как использовать ASCII-значение backspace 0x08 программно в WinForms TextArea?Я пытался в консольной программе:

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

И это показывает, как я ожидал:

HellWorld

Где, как я пытался в WinForms TextArea, чтобы заполнить значение:

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

Это показывает так:

enter image description here

Что сделать событие возврата на задний план для запуска, отличного от , с помощью клавиатурысобытие , чтобы сделать отображение, как я ожидаю, используя значение 0x8 без доступа ни к каким событиям текстового поля. Через программно распечатать «HellWorld» в текстовом поле.

Ответы [ 3 ]

1 голос
/ 10 февраля 2012

Символы и нажатие клавиш не связаны напрямую. Чтобы стереть символ, вам нужно нажать клавишу Backspace в текстовом поле.

0 голосов
/ 10 февраля 2012

Если вы хотите смоделировать кого-то, кто печатает в текстовом поле, вы можете сделать это, используя 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 отправляет нажатия клавиш в активное окно. Поэтому, если другое окно получает фокус во время выполнения приведенного выше кода, нажатия клавиш могут заканчиваться в другом окне.

0 голосов
/ 10 февраля 2012

Символ возврата был введен для тонких клиентов, которые отправляют ввод на сервер символ за символом, чтобы позволить конечным пользователям исправить опечатку, которая уже была отправлена. Современные приложения обычно не используют такого персонажа, поскольку клиентские приложения обычно просто ждут, пока пользователь закончит ввод данных, прежде чем отправлять их на сервер.

Вот почему элемент управления TextBox не поддерживает его, и, возможно, поэтому люди задаются вопросом, зачем вам это нужно.

В любом случае, вам необходимо предварительно обработать данные перед установкой текста TextBox. Например, вы можете использовать регулярные выражения для имитации этого поведения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...