Страницы: 1
RSS
Интересное поведение немодальной формы и её детей., Не устанавливается фокус на элемент TextBox
 
Разрабатываю пару таблиц (ведут учёт товара). Решил по событию "Worksheet_SelectionChange" вызвать форму и установить фокус на TextBox. Па-пам! Всё работает! Не модальная форма появляется при выборе активной ячейки из данного диапазона. Если форма закрывается от кнопок которые расположены на ней (OK, Отмена) то при выборе ячейки появляется форма с фокусом на TextBox.
Код
If formSell.Enabled <> True Then
      formSell.Enabled = True
      formSell.Show
      formSell.tbCount.SetFocus

Однако если форма скрывается (методом Hide) без кнопок которые на ней расположены (а это требуется) фокус не хочет "фокуситься")

Да и если не скрывается - фокуса нет *

Пользователь щёлкает по листу при котором форма не скроется, но фокуса нет.

Код
If (Not (IsEmpty(ActiveCell)) And (intC = 2) And (intR > 2)) Then
    If formSell.Enabled <> True Then
      formSell.Enabled = True
      formSell.Show
      formSell.tbCount.SetFocus '  ВОТ ЭТА СТРОКА НЕ ДАЁТ ФОКУСА ХОТЬ И ПРОХОДИТ ПРИ ОТЛАДКЕ НА УРА
    Else
      formSell.tbCount.SetFocus ' * ЭТА ТО ЖЕ
    End If
  Else
    formSell.Enabled = False
    formSell.Hide
  End If

Что не так? Ещё хочу заметить что при сокрытие формы от её деток обращение происходит при помощи Me.

Код
Private Sub btnCancel_Click()
  tbCount.Text = ""
  cbEmployee.Value = False
  Me.Enabled = False
  Me.Hide
End SubPrivate Sub btnOK_Click()

Private Sub btnOK_Click()
   ...  
   Me.Hide
End Sub

Изменено: funtik52 - 28.03.2017 07:53:12
 
Цитата
funtik52 написал: ...при выборе ячейки появляется форма с фокусом...
...если форма скрывается ... не... "фокуситься"...
....и если не скрывается...
..щёлкает по листу при котором форма не скроется, но фокуса нет...
Честно пытался разобраться в этих хитросплетениях появления/скрытия/НЕ скрытия формы. Не дошло ЧТО же Вы в итоге хотите
Набросайте файл-пример
Согласие есть продукт при полном непротивлении сторон
 
Напишу проще Sanja.
Форма выполняет хранит список ячеек. Пользователь выбирает товар и вводит его количество форме. Так составляется список с товаром и кол. каждого.
Надеюсь это понятно.
1)Выбрали товар (на листе excel это просто ячейка)
2)Появилась окно - ввели количество
3)Нажать Enter или Tab
...
Можно набрать список хоть из тысячи элементов.

На самом деле никакой проблемы нет. При таком порядке фокус передаётся на TextBox и в нём мигает курсор.

Однако предположим что пользователь ошибся - он выбрал не ту ячейку и не будет вводить количество товара.
1)Выбрали товар (на листе excel это просто ячейка)
2)Снова пункт первый (!пользователь ошибся)

Форма не активна (фокус остаётся на выбранной ячейке), при щелчке же на ней курсор не мигает в TextBox. Хотя после нажатия Tab он переходит на следующий элемент формы!
Видимо это осбенность Excel которую тяжело побороть.
Изменено: funtik52 - 31.03.2017 08:36:31
Страницы: 1
Наверх