Вопрос и ответ База LibreOffice; Порядок вкладок от основной формы к подчиненной почти решает мою проблему, но не полностью.
У меня есть таблица mytable
(id, name, textfield
). Я показываю id
и name
в форме с макетом таблицы (элемент управления таблицей). Я добавил столбец textfield
из той же таблицы, что и подчиненная форма с элементом управления текстовым полем (причина в том, что я хочу вводить текст с новой строкой, имея при этом возможность быстро перемещаться по записям в основной таблице). Вот как это выглядит в режиме дизайна:
Я добавил этот базовый макрос на основе двух приведенных выше ответов:
Sub Main
Dim root_doc As Object
Dim form_container, form_ctrlr As Object
Dim main_frm, sub_frm, tab_target As Object
root_doc = ThisComponent
form_container = root_doc.Drawpage.Forms
form_ctrlr = root_doc.getCurrentController()
main_frm = form_container.getByName("MainForm")
sub_frm = main_frm.getByName("SubForm")
tab_target = sub_frm.getByName("TextField")
form_ctrlr.getControl(tab_target).setFocus()
End Sub
Теперь, если я добавлю макрос к событию When losing focus
столбца name
, я получу фокус на текстовом поле при нажатии Tab, но на следующей строке.
Если я добавлю макрос к событию On key press
столбца name
, я получу то, что хочу, нажав, например, Space
, но Tab
или Enter
переводят меня только на следующую строку в основной форме.
Есть ли способ заставить это работать с Tab
?