C# winForm程序窗体右上角X关闭按钮点击后 d出提示文本 只有确定按钮点击后程序无法关闭

C# winForm程序窗体右上角X关闭按钮点击后 d出提示文本 只有确定按钮点击后程序无法关闭,第1张

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程序启动前关闭任务栏上的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9300226.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存