Пользовательское окно сообщения с флажком, получить состояние флажка
Привет Я создаю пользовательское окно сообщений в winforms с флажком, но я не уверен, как я получаю состояние флажка, когда пользователь закрывает форму.
Я использую это для вызова MsgBox:
public static MsgBoxResult Show(string message, string caption, MsgBoxButtons msgBoxButtons, MsgBoxIcon icon, MsgBoxDefaultButton defaultButton, MsgBoxCheckBox donotshowagain) { return new MsgBoxForm(message, caption, msgBoxButtons, icon, defaultButton, donotshowagain).Show(); }
Где donnotshowagain-это параметр checkbox, я создал перечисление MsgBoxCheckBox, которое содержит:
[Flags] public enum MsgBoxCheckBox { /// <summary> /// Show the check box. /// </summary> Show = 1, /// <summary> /// Hides the check box (default) /// </summary> Hide = 0, /// <summary> /// Show as checked. /// </summary> Checked = 2, }
Я надеюсь, что кто-то может указать мне правильное направление с этим.
Я добавил свой код в Git, забыв, что с pastbin перечисления не были включены.
Кроме того, я закончил свой код, так что теперь он должен быть пригоден для использования, также с состоянием флажка.
Код: GitHub - Lupu5R3x/MsgBox: Пользовательское окно сообщений[^]
/LR
Что я уже пробовал:
Искал ответы в интернете, также я посмотрел на код из других пользовательских окон сообщений, которые имеют флажок - но единственный, который я нашел, который использует "show class", который вызывает класс формы, - это InformationBox, и там используется ключевое слово out:
public static InformationBoxResult Show(string text, out CheckState checkBoxState, params object[] parameters) { return new InformationBoxForm(text, parameters).Show(out checkBoxState); }
Но код сам по себе слишком сложен для такого новичка, как я, чтобы разобраться в нем.
Я действительно пытался добавить out в свой собственный код, но получил кучу ошибок.
Richard MacCutchan
То, как вы это называете, весь контекст теряется после возвращения. Вы должны создать экземпляр формы, вызвать Show, или еще лучше, ShowDialog. Когда он возвращается, у вас все еще есть объект экземпляра, поэтому вы можете проверить состояние флажка, который является свойством формы.
Lupu5R3x
В моем коде формы я действительно вызываю ShowDialog (возможно, мне следовало бы добавить эту информацию :()
В моем коде формы у меня есть внутреннее новое шоу MsgBoxResult()
{
Сетиконы();
SetButtons();
Метод setsize();
SetButtonsLayout();
Наборы();
SetOrder();
PlaySound();
SetCheckBox();
Выбирает();
Метод showdialog();
возвращаемый результат;
}