У меня есть форма winform, которая спрашивает пользователя, сохранять ли изменения или нет, форма содержит две кнопки ДА или НЕТ. Теперь эта форма появляется, когда пользователь заполняет какие-либо данные в другой форме, оставляя несохраненные изменения, я спрашиваю пользователю ли сохранить
несохраненные данные или нет. Теперь на основе моего диалогового окна формы messagesBox выдается результат: если пользователь вводит YES, я сохраняю изменения, если он вводит NO, несохраненные изменения отменяются, и если он нажимает кнопку [X] формы messageBox, то ничего не делается.
![messageBox Form](https://i.stack.imgur.com/T8dnl.png)
Что я пробовал до сих пор:
public partial class Form_MessageBox : Form
{
public static bool checkedLiveviewAlso=false;
private static Form_MessageBox msgBox;
private static readonly SoundPlayer obj_SoundPlayer = new SoundPlayer();
private DialogResult dialogResult;
private string buttonName = "Cancel";
private bool Flag = false;
public static Form_MessageBox MSGBOX
{
get { return msgBox; }
}
public string ButtonName
{
get { return buttonName;} set{ buttonName = value;}
}
private static Form_MessageBox GetFormMessageBox()
{
if (msgBox == null)
{
msgBox = new Form_MessageBox();
}
msgBox.vmS_ApplySameLiveview.Visible = false;
return msgBox;
}
//Yes button event handler
private void bt_Yes_Click(object sender, EventArgs e)
{
ButtonName = "Yes";
Flag = true;
msgBox.dialogResult = DialogResult.Yes;
msgBox.Focus();
msgBox.Close();
}
//No button click event handler.
private void bt_No_Click(object sender, EventArgs e)
{
ButtonName = "No";
Flag = true;
msgBox.dialogResult = DialogResult.No;
msgBox.Focus();
msgBox.Close();
}
//Form Closing event handler
private void Form_MessageBox_FormClosing(object sender, FormClosingEventArgs e)
{
if(sender is Form_MessageBox)
{
ButtonName = "Cancel";
msgBox.DialogResult = DialogResult.Cancel;
//msgBox.Close();
}
//msgBox.Visible = true;
//e.Cancel = true;
}
//Static show method of messageBox form which is called my another form.
public static DialogResult Show(string message, string titleText, MessageBoxButtons msgBoxButtons, MessageBoxIcon icon)
{
msgBox = GetFormMessageBox();// new Form_MessageBox();
try
{
Form_Loading.CloseForm();
// string Message = locRM.GetString(message);
msgBox.set_message_property(message.Trim(), titleText, msgBoxButtons, icon);
msgBox.ShowDialog();
return msgBox.dialogResult;
}
finally
{
//msgBox.Dispose();
}
}
Основная проблема заключается в нажатии кнопки [X] в форме сообщения.
Мой вопрос прост: как я могу получить названия кнопок (т. Е. Какая кнопка нажата в форме), чтобы можно было использовать ее результат диалога в моей основной форме.
Thankyou!