Как можно добавить строковый элемент управления в форму во время выполнения? - PullRequest
2 голосов
/ 24 июня 2019

Я хочу добавить строковый элемент управления в форму во время выполнения при нажатии кнопки.

То, что я пробовал до сих пор:

  1. Создано форму
  2. Добавлено run метод формы
  3. Добавлено runTimeControl_validate метод формы
  4. Добавлена ​​кнопка в форме

Кнопка имеет следующий код при нажатии:

void clicked()
{
    FormBuildDesign       design = Form.design();
    FormBuildGroupControl formBuildGroupControl;
    FormStringControl     c;
    FormControlType       fC;        
    ;

    // c = addGroup.addControl(FormControlType::String, 'RunTimeControl');

    c = ButtonGroup.addControl(fC::String, 'test');
    c.label("New control");
    formBuildGroupControl = formBuildDesign.control(addGroup.id());
}

Я получаю ошибку в строке c = ButtonGroup.addControl(fC::String, 'test');

Ошибка: перечисление не существует

1 Ответ

6 голосов
/ 24 июня 2019

Во-первых, замените fC::String на FormControlType::String.

Во-вторых, строковые элементы управления нельзя добавлять в группы кнопок (ButtonGroup тип элемента управления) - вместо этого добавьте их к обычному Group.

В-третьих, чтобы избежать таких проблем, как отсутствие меток и т. Д., Имеет смысл добавить element.lock(); перед добавлением элемента управления и element.unlock(); после обновления его метки. - игнорировать это .

...