
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBoxShow("确定要关闭程序吗", "系统提示", MessageBoxButtonsOKCancel, MessageBoxIconQuestion) == DialogResultCancel) {
eCancel = true;
}
}
重写protected override void OnClosing(CancelEventArgs e)加上代码eCancel = true;
如:
protected override void OnClosing(CancelEventArgs e)
{
MessageBoxShow(“我点击了关闭按钮”);
eCancel = true;
}
可以用Process类来getprocess, 得到当前运行的所有进行,然后一一调用kill或是terminate方法中止运行之。
不过,可能需要判断一下是不是系统进程。
代码嘛,懒得写了。你看一下msdn里process类的方法说明就行了。有例子的。
Form2 Form=new Form2();
Formshow();
Form1closed();
即可
建议用同级窗口,父子窗口是不行的
在C#的WinForm程序中,有的时候需要判定关闭请求从哪里发出来的。比如是用户点击了右上角的“关闭”按钮,还是调用了WinFormClose()方法。最典型的是要知道点击右上角的“关闭”按钮发出的事件。下面这个方法可以判断这点:
protected
override
void
WndProc(ref
Message
msg)
{
const
int
WM_SYSCOMMAND
=
0x0112;
const
int
SC_CLOSE
=
0xF060;
if
(msgMsg
==
WM_SYSCOMMAND
&&
((int)msgWParam
==
SC_CLOSE))
{
//
点击winform右上关闭按钮
//
加入想要的逻辑处理
return;
}
baseWndProc(ref
msg);
}
MDI模式的么?
是的话,取到主窗体,然后循环它下面的所有子窗体,找到的时候就调用close
像这样:
//拿到主窗体
TestMainForm mainForm;
//循环所有子窗体
for (int i = 0; i < mainFormMdiChildrenLength; i++)
{
//判断子窗体的名字是否是我们要关闭的窗体
//也可以用类型判断 mainFormMdiChildren[i]GetType() == typeof(TestForm)
//TestForm是类的名字
if (mainFormMdiChildren[i]Name == "TestForm") {
//找到则关闭该窗口
mainFormMdiChildren[i]Close();
break;
}
}
以上就是关于C# winForm程序窗体右上角X关闭按钮点击后 d出提示文本 只有确定按钮点击后程序无法关闭全部的内容,包括:C# winForm程序窗体右上角X关闭按钮点击后 d出提示文本 只有确定按钮点击后程序无法关闭、c# winform程序运行时禁止点x关闭、C#winform程序启动前关闭任务栏上的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)