2015-09-01 4 views
0

Я проектирую виртуальную цифровую панель в Windows Form. Пожалуйста, предположите, что у меня есть Del ключ, чтобы удалить символ textbox. Когда я нажимаю на textbox в первый раз, чтобы выбрать его, а затем нажмите клавишу Del, символ будет удален правильно относительно позиции курсора. Но после обновления содержимого текста свойство SelectionStart меняется на ноль, и мой мигающий курсор исчез. Я решил эту проблему, временно сохраняя ее значение, прежде чем обновлять содержимое textbox и модифицировать его в конце.Виртуальная клавиатура в C# - Есть ли элегантный способ обновления Textbox.SelectionStart?

tempSelectionStart = enteredTextbox.SelectionStart; //save SelectionStart value temporarily 
enteredTextbox.Text = enteredTextbox.Text.Substring(0, enteredTextbox.SelectionStart - 1) 
        + enteredTextbox.Text.Substring(enteredTextbox.SelectionStart, 
         enteredTextbox.Text.Length - (enteredTextbox.SelectionStart)); 
enteredTextbox.SelectionStart = tempSelectionStart-1; 

Я хочу знать:

  1. Есть ли более элегантный способ решить эту проблему?
  2. Как перенести курсор в текстовое поле после первого нажатия клавиши?

Спасибо.

ответ

2

Используйте свойство SelectedText вместо:

private void DeleteButton_Click(object sender, EventArgs e) { 
    if (textBox1.SelectionLength == 0) textBox1.SelectionLength = 1; 
    textBox1.SelectedText = ""; 
    textBox1.Focus(); 
} 

private void BackspaceButton_Click(object sender, EventArgs e) { 
    if (textBox1.SelectionLength == 0) { 
     if (textBox1.SelectionStart > 0) { 
      textBox1.SelectionStart--; 
      textBox1.SelectionLength = 1; 
     } 
    } 
    textBox1.SelectedText = ""; 
    textBox1.Focus(); 
} 
+0

Если вы хотите, ключевые работы Del как Backspace и удалить символ, который помещается левую сторону курсора, только вычитаем один из 'SelectionStart'. Есть ли другой способ? – GntS

+2

Вздох. Вы все еще используете свойство SelectionText. –

+0

Уважаемый Пассажир, можете ли вы направить меня, чтобы сделать это с помощью свойства SelectedText? – GntS

 Смежные вопросы

  • Нет связанных вопросов^_^