AcceptDialog
Окно сообщения или формы с кнопкой подтверждения и явными сигналами действий.
Добавьте диалог в дерево, настройте DialogText и откройте наследуемым PopupCentered. По умолчанию окно скрыто, transient/exclusive включены. Повторное открытие использует тот же объект; скрытие не освобождает его. Для выбора «подтвердить/отменить» используйте ConfirmationDialog.
Confirmed приходит при подтверждении кнопкой OK или зарегистрированным LineEdit. По умолчанию DialogHideOnOk = true: окно скрывается до обработчика. Если форма требует проверки данных, установите false, проверьте значения в Confirmed и вызовите Hide только после успеха. Установка GetOkButton().Disabled = true блокирует кнопку и зарегистрированный ввод Enter; подпись кнопки сама ничего не сохраняет.
Canceled относится к пути отмены: кнопке Cancel, запросу закрытия окна или действию ui_close_dialog при включённом DialogCloseOnEscape. Прямой Hide не означает отмену и Canceled не испускает. По пути отмены скрытие запланировано отложенно; не считайте Visible уже изменённым внутри обработчика. Откат данных приложения реализуйте сами.
AddButton с непустым action испускает CustomAction, не Confirmed и не Canceled. Автоматического закрытия у этой кнопки нет; с пустым action подключите обработчик к возвращённому Button.Pressed самостоятельно. AddCancelButton создаёт кнопку пути отмены. Не определяйте роль по тексту или положению кнопки.
GetOkButton/GetLabel и добавленные кнопки принадлежат диалогу. Не освобождайте их, пока они прикреплены. RemoveButton отсоединяет дополнительную кнопку, но не освобождает её: затем перенесите или вызовите Free. Стандартную OK удалять нельзя; стандартную Cancel у ConfirmationDialog также сохраняйте, поскольку производный класс хранит ссылку на неё.
RegisterTextEnter подключайте один раз для каждого LineEdit, обычно собственного поля внутри диалога. Присваивание Text не является TextSubmitted и не подтверждает форму. Обработчик подтверждения не проверяет Visible: не регистрируйте внешнее постоянно активное поле без собственной проверки состояния.
Для формы разместите один корневой Container в содержимом диалога и вложите поля в него. Несколько непосредственных Control получают одну область и могут перекрываться. При собственной форме очистите DialogText либо скройте встроенный Label. DialogAutowrap относится только к этому Label; он не раскладывает остальные поля.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
AcceptDialogКонструктор
public AcceptDialog();Создаёт скрытое окно с OK, включёнными DialogHideOnOk и DialogCloseOnEscape, пустым DialogText и выключенным DialogAutowrap.
Свойства5
DialogAutowrapСвойство
public bool DialogAutowrap { get; set; }Перенос встроенного Label: true устанавливает Word, false — Off. Getter true для любого ненулевого режима Label. Не влияет на раскладку пользовательских полей.
DialogCloseOnEscapeСвойство
public bool DialogCloseOnEscape { get; set; }Разрешает отмену действием ui_close_dialog, обычно Escape; true по умолчанию. false не запрещает кнопку Cancel или запрос закрытия окна.
DialogHideOnOkСвойство
public bool DialogHideOnOk { get; set; }Скрывать до Confirmed, true по умолчанию. Для проверки формы задайте false и вызовите Hide вручную после успеха. Не управляет отменой или CustomAction.
DialogTextСвойство
public string DialogText { get; set; }Исходный текст встроенного Label. Это обычный текст, не BBCode и не значения полей формы. Прямое редактирование GetLabel().Text отражается в getter.
OkButtonTextСвойство
public string OkButtonText { get; set; }Сохранённая пользовательская подпись OK, пустая по умолчанию использует стандартную подпись. Getter возвращает это сырое значение, поэтому может быть пустым при видимом OK. Для роли/обработки используйте Confirmed, не текст.
Методы18
AddButtonButton
public Button AddButton(string text, bool right = false, string action = "");Добавляет дополнительную кнопку и возвращает общую ссылку. Непустой action подключает CustomAction без автоматического скрытия; пустой требует собственного обработчика Pressed. right выбирает логическую сторону ряда относительно OK, не роль кнопки.
| Имя | Тип | По умолчанию |
|---|---|---|
text | string | — |
right | bool | false |
action | string | "" |
textДобавляет дополнительную кнопку и возвращает общую ссылку. Непустой action подключает CustomAction без автоматического скрытия; пустой требует собственного обработчика Pressed. right выбирает логическую сторону ряда относительно OK, не роль кнопки.
rightЛогическая сторона ряда: false в начале, true в конце относительно стандартной OK.
actionИдентификатор CustomAction; пустой не подключает автоматическое действие.
ButtonДобавленная Button, принадлежащая диалогу до отсоединения.
AddCancelButtonButton
public Button AddCancelButton(string name);Добавляет кнопку пути Canceled. Пустая name использует стандартную локализуемую подпись Cancel; положение выбирается с учётом системной политики. Диалог владеет кнопкой, пока она прикреплена.
| Имя | Тип | По умолчанию |
|---|---|---|
name | string | — |
nameДобавляет кнопку пути Canceled. Пустая name использует стандартную локализуемую подпись Cancel; положение выбирается с учётом системной политики. Диалог владеет кнопкой, пока она прикреплена.
ButtonДобавленная Button отмены, принадлежащая диалогу.
GetCloseOnEscapebool
public bool GetCloseOnEscape();Разрешает отмену действием ui_close_dialog, обычно Escape; true по умолчанию. false не запрещает кнопку Cancel или запрос закрытия окна.
boolФлаг отмены через ui_close_dialog.
GetHideOnOkbool
public bool GetHideOnOk();Скрывать до Confirmed, true по умолчанию. Для проверки формы задайте false и вызовите Hide вручную после успеха. Не управляет отменой или CustomAction.
boolФлаг скрытия при подтверждении.
GetLabelLabel
public Label GetLabel();Общий внутренний Label сообщения. Можно настроить его оформление/видимость; не удаляйте и не освобождайте.
LabelОбщий внутренний Label.
GetOkButtonButton
public Button GetOkButton();Общая стандартная Button подтверждения, принадлежащая диалогу. Настраивайте Disabled/тему, не удаляйте и не освобождайте.
ButtonОбщая стандартная Button OK.
GetOkButtonTextstring
public string GetOkButtonText();Сохранённая пользовательская подпись OK, пустая по умолчанию использует стандартную подпись. Getter возвращает это сырое значение, поэтому может быть пустым при видимом OK. Для роли/обработки используйте Confirmed, не текст.
stringСырая подпись OK; пустая означает стандартную.
GetTextstring
public string GetText();Исходный текст встроенного Label. Это обычный текст, не BBCode и не значения полей формы. Прямое редактирование GetLabel().Text отражается в getter.
stringИсходный текст встроенного Label.
HasAutowrapbool
public bool HasAutowrap();Перенос встроенного Label: true устанавливает Word, false — Off. Getter true для любого ненулевого режима Label. Не влияет на раскладку пользовательских полей.
booltrue для режима встроенного Label, отличного от Off.
RegisterTextEnter2 перегрузки
public void RegisterTextEnter(Control _UnnamedArg0);Однократно подключает TextSubmitted конкретного LineEdit к подтверждению. Проверяет Disabled у OK, но не Visible диалога и не правила валидации формы. Перегрузка Control также требует LineEdit; другое значение не превращается в поле ввода.
| Имя | Тип | По умолчанию |
|---|---|---|
_UnnamedArg0 | Control | — |
_UnnamedArg0Ненулевой LineEdit. Подключайте один раз, не передавайте произвольный Control.
public void RegisterTextEnter(LineEdit lineEdit);Однократно подключает TextSubmitted конкретного LineEdit к подтверждению. Проверяет Disabled у OK, но не Visible диалога и не правила валидации формы. Перегрузка Control также требует LineEdit; другое значение не превращается в поле ввода.
| Имя | Тип | По умолчанию |
|---|---|---|
lineEdit | LineEdit | — |
lineEditНенулевой LineEdit. Подключайте один раз, не передавайте произвольный Control.
RemoveButton2 перегрузки
public void RemoveButton(Button button);Отсоединяет дополнительную кнопку этого диалога и удаляет её служебный spacer. Саму кнопку не освобождает: перенесите или вызовите Free. Нельзя удалять стандартную OK; перегрузка Control принимает именно Button, не произвольный Control.
| Имя | Тип | По умолчанию |
|---|---|---|
button | Button | — |
buttonДополнительная Button этого диалога; стандартная OK недопустима.
public void RemoveButton(Control quadrantSize);Отсоединяет дополнительную кнопку этого диалога и удаляет её служебный spacer. Саму кнопку не освобождает: перенесите или вызовите Free. Нельзя удалять стандартную OK; перегрузка Control принимает именно Button, не произвольный Control.
| Имя | Тип | По умолчанию |
|---|---|---|
quadrantSize | Control | — |
quadrantSizeДополнительная Button этого диалога; стандартная OK недопустима.
SetAutowrapvoid
public void SetAutowrap(bool autowrap);Перенос встроенного Label: true устанавливает Word, false — Off. Getter true для любого ненулевого режима Label. Не влияет на раскладку пользовательских полей.
| Имя | Тип | По умолчанию |
|---|---|---|
autowrap | bool | — |
autowrapПеренос встроенного Label: true устанавливает Word, false — Off. Getter true для любого ненулевого режима Label. Не влияет на раскладку пользовательских полей.
SetCloseOnEscapevoid
public void SetCloseOnEscape(bool enabled);Разрешает отмену действием ui_close_dialog, обычно Escape; true по умолчанию. false не запрещает кнопку Cancel или запрос закрытия окна.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledРазрешает отмену действием ui_close_dialog, обычно Escape; true по умолчанию. false не запрещает кнопку Cancel или запрос закрытия окна.
SetHideOnOkvoid
public void SetHideOnOk(bool enabled);Скрывать до Confirmed, true по умолчанию. Для проверки формы задайте false и вызовите Hide вручную после успеха. Не управляет отменой или CustomAction.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledСкрывать до Confirmed, true по умолчанию. Для проверки формы задайте false и вызовите Hide вручную после успеха. Не управляет отменой или CustomAction.
SetOkButtonTextvoid
public void SetOkButtonText(string text);Сохранённая пользовательская подпись OK, пустая по умолчанию использует стандартную подпись. Getter возвращает это сырое значение, поэтому может быть пустым при видимом OK. Для роли/обработки используйте Confirmed, не текст.
| Имя | Тип | По умолчанию |
|---|---|---|
text | string | — |
textСохранённая пользовательская подпись OK, пустая по умолчанию использует стандартную подпись. Getter возвращает это сырое значение, поэтому может быть пустым при видимом OK. Для роли/обработки используйте Confirmed, не текст.
SetTextvoid
public void SetText(string text);Исходный текст встроенного Label. Это обычный текст, не BBCode и не значения полей формы. Прямое редактирование GetLabel().Text отражается в getter.
| Имя | Тип | По умолчанию |
|---|---|---|
text | string | — |
textИсходный текст встроенного Label. Это обычный текст, не BBCode и не значения полей формы. Прямое редактирование GetLabel().Text отражается в getter.
Сигналы и события3
CanceledСобытие
public event Action Canceled;Отмена через стандартный путь кнопки/закрытия/Escape. Скрытие откладывается; прямой Hide сам этот сигнал не испускает. Не означает автоматический откат данных.
ConfirmedСобытие
public event Action Confirmed;Подтверждение через OK/зарегистрированное поле. При DialogHideOnOk = true окно уже скрыто перед сигналом. Сохранение/операция приложения выполняется вашим обработчиком.
CustomActionСобытие
public event AcceptDialog.CustomActionEventHandler CustomAction;Дополнительная кнопка с непустым action нажата. Передаёт StringName действия; сама не подтверждает, не отменяет и не скрывает диалог.
| Имя | Тип | По умолчанию |
|---|---|---|
action | StringName | — |
actionStringName, заданный непустым action при AddButton.
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
buttons_min_heightint | Минимальная высота каждой кнопки в нижнем ряду (например, OK/Отмена) в пикселях. Ее можно увеличить, чтобы кнопки с коротким текстом было легче нажимать/касать. По умолчанию:0 |
buttons_min_widthint | Минимальная ширина каждой кнопки в нижнем ряду (например, OK/Отмена) в пикселях. Ее можно увеличить, чтобы кнопки с коротким текстом было легче нажимать/касать. По умолчанию:0 |
buttons_separationint | Размер вертикального пространства между содержимым диалогового окна и рядом кнопок. По умолчанию:10 |
panelStyleBox | Панель которая заполняет задний план окна. |