Рейтинг:
22
Prerak Patel
Вы также должны учитывать длину selectedtext, так как поведение backspace меняется.
If TextBox1.SelectedText.Length > 0 Then
TextBox1.Text = TextBox1.Text.Substring(0, TextBox1.SelectionStart) & TextBox1.Text.Substring(TextBox1.SelectionStart + TextBox1.SelectionLength)
Else
TextBox1.Text = TextBox1.Text.Substring(0, TextBox1.SelectionStart - 1) & TextBox1.Text.Substring(TextBox1.SelectionStart)
End If
Sergey Alexandrovich Kryukov
Да, это исправление, мой 5-й, но это всего лишь симптоматическое лечение. Хотите увидеть радикальное решение? Пожалуйста, смотрите мой ответ.
--СА
Saumyavemula
Привет,
Спасибо, это действительно работает. Можете ли вы помочь мне для кодирования на кнопке CAPS Lock?
Заранее спасибо
Prerak Patel
Добро пожаловать.
На замок крышки, вы должны иметь флаг, или использовать user32.dll.
Я уже ответил на него http://www.codeproject.com/Questions/160142/programming-on-CAPS-LOCK-button.aspx
Saumyavemula
Я попытался использовать этот код, но он показывает ошибку как
"Не удается найти PInvoke DLL 'user32'"
Prerak Patel
Тебе это не нужно. Согласно вашей логике, вы просто должны иметь флаг. Обновленный ответ на предыдущий вопрос.
Рейтинг:
1
Sunasara Imdadhusen
Привет,
Пожалуйста, попробуйте следующее
If TextBox1.Text.Length > 0 Then
int CursorPosition = textBox1.SelectionStart;
TextBox1.Text = TextBox1.Text.Remove(CursorPosition - 1, 1)
End If
Спасибо,
Имдадхусен
Sergey Alexandrovich Kryukov
Да, это исправление, мой 5-й, но это всего лишь симптоматическое лечение. Хотите увидеть радикальное решение? Пожалуйста, смотрите мой ответ.
--СА
Рейтинг:
1
Sergey Alexandrovich Kryukov
Я думаю, что то, что вы пишете, вовсе не виртуальная клавиатура.
Если вы предполагаете, что целевой сфокусированный элемент является TextBox
, это означает, что вы пишете некоторый элемент управления, чтобы помочь печатать только для вашего приложения. Мой совет таков: Либо переименуйте свой компонент, либо реализуйте настоящую виртуальную клавиатуру.
Для этого вам нужно просто сделать вещи:
1) Используйте P/Invoke для Windows API SendInput
.
2) решите проблему фокусировки клавиатуры и предотвращения как скрытия, так и активации вашей виртуальной клавиатуры, см. Это: Фокус приложения получение и потеря[^].
Если вы сделаете эту реальную вещь, она будет имитировать обычный пользовательский ввод, и ваша проблема backspace будет решена просто имитацией нажатия клавиши backspace. Имейте в виду, что backspace-это не единственный метод, поэтому лучше использовать настоящую технику вместо нее. TextBox
манипуляции.
—СА
Saumyavemula
Привет,
Это в C#, мне нужно в VB.Net-да. Не могли бы вы мне помочь?
Заранее спасибо.
Sergey Alexandrovich Kryukov
В своем ответе я не написал ни слова на языке Си#. Если вы о ссылке, то это просто для справки. Кроме того, в нем нет ничего специфичного для C#.
(И вообще, если вы задаете вопросы или просто ищете помощь в .NET, не надейтесь на много VB.NET насколько я могу судить, большинство квалифицированных людей работают на C#. Это просто факт жизни: непонимание C# будет для вас проблемой. И нет ничего плохого в том, чтобы немного научиться.)
--СА