VB6 SendKeys проблема - PullRequest
       4

VB6 SendKeys проблема

1 голос
/ 21 июня 2011

Я пытаюсь создать кнопку для ввода значения "0" в текстовое поле.

Private Sub cmd0_Click()
    PvCurPaidAmt.SetFocus
    PvCurPaidAmt.SelStart = Len(PvCurPaidAmt) + 1
    PvCurPaidAmt.SelText = "0"
End Sub

Теперь проблема заключается в том, что мне нужно изменить текстовое поле на текстовое поле pvcurenccy, предоставленное сторонним API, которое неподдерживает функции SelStart и SelText, поэтому я не могу использовать приведенный выше код.

Я пытаюсь использовать SendKeys:

Private Sub cmd0_Click()
   PvCurPaidAmt.SetFocus
   SendKeys "0"
End Sub

Теперь проблема не в том, чтобы перейти к следующему курсору.Я пытаюсь сделать то, что делает экранная клавиатура.Пожалуйста помоги.Спасибо.

1 Ответ

0 голосов
/ 22 июня 2011

Если я правильно вас понимаю, когда вы установите фокус на элемент управления PvCurPaidAmt, вы не можете быть уверены, что курсор будет находиться в конце строки (или что вся строка не выделена или не подсвечена для начала).

Если элемент управления PvCurPaidAmt имеет свойство .Text, вы можете сделать:

PvCurPaidAmt.Text = PvCurPaidAmt.Text & "0"

Если нет, сначала SendKeys отправит курсор в конец:

SendKeys "{END}", True  ' it will force the app to wait till the keys are processed

тогда

SendKeys "0"
...