Как после нажатия «Ввод» в конце текста, который в поле формы добавить «,» и курсор не переместился на следующую строку? - PullRequest
0 голосов
/ 01 февраля 2019

Как после нажатия «Ввод» в конце текста, находящегося в поле формы добавить «,» и курсор не переместился на следующую строку?
Логика:
- Пользователь вводит «Текст_1»";
- пользователь нажимает" Enter ";
- код добавляет", ";
- результат в поле формы -" Text_1 ";
- пользователь вводит" Text_2 ";
- пользователь нажимает «Enter»;
- код добавляет «,»;
- результат в поле формы - «Text_1, Text_2»;

Private Sub Field1_KeyDown(KeyCode As Integer, Shift As Integer)
        If KeyCode = 13 Then  
                    Me.Field1.Text = Me.Field1.Text & ", "                     
                    Me.Field1.SelStart = Len(Me.Field1.Text)             
         End If ' KeyCode
End Sub

Я пытаюсь сделать, но не могу.
Теперь курсор после нажатия «Enter» перемещается на следующую строку.enter image description here

Как сделать так, чтобы курсор оставался на одной строке с текстом?enter image description here

Update_1
Как сделать пробел после запятой?enter image description here

Мое решение не оставляет пробела после запятой после нажатия "Enter".
enter image description here

Update_2
Файл базы данных - ссылка

1 Ответ

0 голосов
/ 01 февраля 2019

Вы хотите «проглотить» нажатие клавиши.Вы можете сделать это, установив KeyCode в 0 - обратите внимание, что неявно передается ByRef (параметры передаются по ссылке в VBA, если не указано иное), поэтому изменив значение вобработчик (который вызывается до того, как нажатие клавиши попадает в текстовое поле), источник события будет видеть это значение как 0.

Private Sub Field1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then  
        Me.Field1.Text = Me.Field1.Text & ", "                     
        Me.Field1.SelStart = Len(Me.Field1.Text)             
        KeyCode = 0
    End If
End Sub
...