C# 如何检测在此之前触发的TextBox\u Leave事件中关闭(X)按钮的单击事件?
如何检测文本框中窗体/窗口控制框右上角的close(X)按钮的click事件?在此之前是否触发了Leave事件? 我不想知道CloseReason,FormClosing,FormClosing之类的东西,除非它们是不可避免的 我确实想检测用户是否单击了表单的X按钮。我的情况显然是,我有文本框和按钮。在TextBox\u Leave中有一个新屏幕打开,但当TextBox聚焦后,按下(X)按钮,Leave事件将首先触发,但我需要知道用户是否按下(X)按钮以显示Leave事件中的新屏幕或关闭当前屏幕C# 如何检测在此之前触发的TextBox\u Leave事件中关闭(X)按钮的单击事件?,c#,winforms,events,formclosing,C#,Winforms,Events,Formclosing,如何检测文本框中窗体/窗口控制框右上角的close(X)按钮的click事件?在此之前是否触发了Leave事件? 我不想知道CloseReason,FormClosing,FormClosing之类的东西,除非它们是不可避免的 我确实想检测用户是否单击了表单的X按钮。我的情况显然是,我有文本框和按钮。在TextBox\u Leave中有一个新屏幕打开,但当TextBox聚焦后,按下(X)按钮,Leave事件将首先触发,但我需要知道用户是否按下(X)按钮以显示Leave事件中的新屏幕或关闭当前屏幕
我不能使用上面提到的事件,因为它会在文本框离开后触发,但我想知道(X)执行文本框前按下按钮\u离开代码。我在解释您的问题时有点问题,但如果我理解正确,您想知道用户是否在关闭程序之前选择关闭该程序,以便您可以停止任何正在进行的作业 你有什么理由不想用表格结尾,或者我完全误解了你的问题?因为我会用这样的形式来解决它
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// Display a MsgBox asking the user to close the form.
if (MessageBox.Show("Are you sure you want to close the form?", "Close Form",
MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.No)
{
// Cancel the Closing event
e.Cancel = true;
}
}
消息框当然可以被代码替换,以停止当前由代码执行的任何正在进行的作业。但也许我误解了你的意思?如果我理解正确,请尝试以下方法:
你(编辑过的)问题的答案是:“否”。首先触发TextBox.Leave事件,然后执行关闭(X)按钮的处理
但是,如果您不知道为什么要更改订单,我们无法提供有关此操作的更多信息。我已经做出了决定我的问题中有些词有错。。。所以,我的情况很清楚,我有textBox和按钮在textBox\u Leave有一个新的屏幕打开,但当textBox被聚焦,然后按下(X)按钮,Leave事件会首先触发,但我需要知道用户是否按下(X)按钮从Leave事件显示新屏幕或关闭当前屏幕。我已经我的问题中有些词有错。。。所以,我的情况很清楚,我有textBox和按钮在textBox_Leave中,有一个新屏幕打开,但当textBox聚焦后,按下(X)按钮,Leave事件将首先触发,但我需要知道用户是否按下(X)按钮从Leave事件显示新屏幕或关闭当前屏幕。我不能使用Form1\u FormClosing,因为此事件将在休假事件后触发。我的问题与上述问题无关。谢谢你的问题在副本中得到了准确的回答。这个解决方案正从我这里起作用。。。私人学校是封闭的;受保护的覆盖无效WndProc(ref Message m){if(m.Msg==0x0010)//WM_Close isCloseClicked=true;base.WndProc(ref m);}——在文本框中{e.Cancel=true;this.Close();}
bool isButtonClick = false;
private void button1_Click(object sender, EventArgs e)
{
isButtonClick = true;
this.Close();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if(isButtonClick)
{
//User close form with Button
}
else
{
//User close form with (X) button at the top right corner of the
//control box of a form/window
}
}