Как получить последний символ, написанный в textbox?

Я хочу знать, как получить последний символ, написанный в текстовом поле. Это не значит, что она последняя. Например, я пишу следующее:--1-->

Это я тест.

но я забыл "s", поэтому я перемещаю палец на " i "и добавляю "s":

Это тест.

Итак, как я могу получить "s"?

Я хочу, чтобы получить его в char или string, но я не знаю как это сделать...

Я надеюсь, что это четкий.

4 ответов


если вы хотите получить последний записанный символ, то подпишитесь поле до KeyDown событие:

C#:

textBox.KeyDown += textBox_KeyDown;

XAML:

<TextBox x:Name="textBox" KeyDown="textBox_KeyDown" />

затем:

private void textBox_KeyDown(object sender, KeyEventArgs e)
{
    /* e.Key contains the keyboard key associated with the event. */
}

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


ответ yBee почти правильный, за исключением того, что событие называется KeyDown, а не KeyPress, по крайней мере, на Windows Phone 8.


используя этот код, чтобы получить последний символ, вставленный в textbox

 private void Textbox1_KeyDown(object sender, KeyEventArgs e)
            {
                lastchar_inserted = e.KeyValue.ToString(); // global string variable
            }

посмотрите, это может помочь. Чтобы получить последний символ текста, другое предложение-добавить

"\n" (nameTextbox.Append("\n"))

и затем использовать

int lineCount = nameTextbox.Lines.Count();

и, наконец, используйте метод

nameTextbox.GetFirstCharIndexFromLine(lineCount).

там у вас может быть (index-1) (или что угодно, будьте осторожны и проверьте его с меньшим текстом) в качестве индекса вашего последнего символа.