powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выделить содержимое текста в поле
8 сообщений из 8, страница 1 из 1
Выделить содержимое текста в поле
    #39714324
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача простая, нужно чтобы по нажатию горячих клавиш выделялся весь текст внутри поля.
Не могу понять, почему не срабатывает нажатие «Ctrl+A»???
В редакторе VBA в пошаговом режиме видно, что код срабатывает:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Form_Load()
  Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

  Select Case KeyCode
    Case vbKeyA
      If Shift = 2 Then '1-SHIFT (fmShiftMask), 2-CTRL (fmCtrlMask), 4-ALT (fmAltMask)
        Me.RibbonXML.SetFocus
        Me.RibbonXML.SelStart = 0
        Me.RibbonXML.SelLength = Len(Me.RibbonXML.Text)
      End If
  End Select
End Sub




___________________________________
Использую Microsoft Access 2010, 64 бит.

Спасибо каждому, кто мне когда-либо здесь помог и продолжает помогать.
...
Рейтинг: 0 / 0
Выделить содержимое текста в поле
    #39714332
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nataxa23Не могу понять, почему не срабатывает нажатие «Ctrl+A»???Наверное потому, что это сочетание для "выделить всё".И если код отрабатывает (не проверял, верю на слово), то можно попробовать так
Код: vbnet
1.
2.
3.
4.
...
Me.RibbonXML.SelLength = Len(Me.RibbonXML.Text)
KeyCode=0
...
...
Рейтинг: 0 / 0
Выделить содержимое текста в поле
    #39714345
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nataxa23Задача простая, нужно чтобы по нажатию горячих клавиш выделялся весь текст внутри поля.
Не могу понять, почему не срабатывает нажатие «Ctrl+A»???

А почему не хотите использовать Ctrl-F2 (выделение поля)?
И обработка нажатия в коде не будет нужна.
...
Рейтинг: 0 / 0
Выделить содержимое текста в поле
    #39714521
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургНаверное потому, что это сочетание для "выделить всё".И если код отрабатывает (не проверял, верю на слово), то можно попробовать так
Код: vbnet
1.
2.
3.
4.
...
Me.RibbonXML.SelLength = Len(Me.RibbonXML.Text)
KeyCode=0
...


Спасибо, заработало.
__MichelleА почему не хотите использовать Ctrl-F2 (выделение поля)?
И обработка нажатия в коде не будет нужна.
Да просто так привычнее, по аналогии с другими приложениями используется «Ctrl+A».
...
Рейтинг: 0 / 0
Выделить содержимое текста в поле
    #39714648
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заработало, но не везде.
Выдает ошибку № 2474: «Введеное выражение требует, чтобы элемент управления находился в активном окне»
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Dim ctrl As control
  
  Select Case KeyCode
    Case vbKeyA
      If Shift = 2 Then '1-SHIFT (fmShiftMask), 2-CTRL (fmCtrlMask), 4-ALT (fmAltMask)
        Set ctrl = Screen.ActiveControl
        ctrl.SetFocus
        If (ctrl.Name = "Поле1") Then
          If (ctrl.SelStart = 0) Then
            ctrl.SelStart = 0
            ctrl.SelLength = Len(ctrl.Text)
            KeyCode = 0
          End If
        ElseIf (ctrl.Name = "Поле2") Then
          If (ctrl.SelStart = 0) Then
            ctrl.SelStart = 0
            ctrl.SelLength = Len(ctrl.Text)
            KeyCode = 0
          End If
        ElseIf (ctrl.Name = "Поле3") Then
          If (ctrl.SelStart = 0) Then
            ctrl.SelStart = 0
            ctrl.SelLength = Len(ctrl.Text)
            KeyCode = 0
          End If
        End If
        Set ctrl = Nothing
      End If
  End Select
End Sub



Почему ошибку то выдает, курсор же находится в поле?
...
Рейтинг: 0 / 0
Выделить содержимое текста в поле
    #39714668
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположу, что надо так
nataxa23
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
...        
   With Me.ActiveControl
        'ctrl.SetFocus
       Select Case  .Name
        Case "Поле1", "Поле2", "Поле3"
          If (.SelStart = 0) Then
            '.SelStart = 0'зачем? Уже и так равно нулю
            .SelLength = Len(.Text)
            KeyCode = 0
          End If
        End Select
        'Set ctrl = Nothing
   End with
...

ИМХО, так короче и понятней. В этих ифах столько путаницы...
...
Рейтинг: 0 / 0
Выделить содержимое текста в поле
    #39714780
nataxa23, а зачем вы используете Form_KeyDown, если действия относятся к конкретному контролу. Используйте его KeyDown.
...
Рейтинг: 0 / 0
Выделить содержимое текста в поле
    #39714811
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургИМХО, так короче и понятней. В этих ифах столько путаницы...
Действительно, понятней. Век живи, век учись.
Спасибо.
Есть еще вопрос, с которым так же столкнулась. Как вычислить, что внутри поля курсор в тексте стоит либо на самой первой строке, но не вначале текста, равно как и на оборот на самой последней, но не в конце текста?
А то в этих случаях у меня курсор выходит из активного поля и переходит на другой контрол.
Кривцов Анатолийnataxa23, а зачем вы используете Form_KeyDown, если действия относятся к конкретному контролу. Используйте его KeyDown.
Потому что к форме у меня назначены свои горячие клавиши, чтобы форма их перехватывала. Например F2 - у меня сохранение записи, вместо выделения текста в поле.
К тому же я использую один и тот же код для нескольких полей.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выделить содержимое текста в поле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]