怎样能像MSN一样,关闭窗口程序还在运行?

nocolor 2005-05-10 08:56:24
用过Msn都知道在它的窗口上点关闭的时候程序并没有关闭,用C#怎么才能实现这种效果。
...全文
244 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangyong12 2005-05-10
  • 打赏
  • 举报
回复
用托盘就可以了。
nocolor 2005-05-10
  • 打赏
  • 举报
回复
退出按钮的事件我用Application.Exit()为什么程序还是在运行。
snowfox0318 2005-05-10
  • 打赏
  • 举报
回复
更正一下,是其值始终为假,除了当你在托盘菜单选择退出的时候,才会为真。
snowfox0318 2005-05-10
  • 打赏
  • 举报
回复
其实MSN只不过是把窗口隐藏了,可以通过相应 Closing 来控制:

void MainFormClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
if( this.bCloseFlag == false )
{
e.Cancel = false;
this.Hide();
}
else
{
e.Cancel = true;
}
}

bCloseFlag 是一个私有变量,其值始终为真,除了当你在托盘菜单选择退出的时候,才会为假。
sayo 2005-05-10
  • 打赏
  • 举报
回复
复写窗体的FormCloseing事件,如下:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
this.Visible = false;
}

使用Notify Icon控件,可将程序在最小化时添加到系统栏,当鼠标单击之时显示窗体:
private void notifyIcon1_MouseDown(object sender, MouseEventArgs e)
{
this.Visible = true;
}
xiaodele 2005-05-10
  • 打赏
  • 举报
回复
只要这个窗口不是 Application.Run 打开的窗口就可以了.即使关闭也不会退出程序的
vzxq 2005-05-10
  • 打赏
  • 举报
回复
help up
Bob 2005-05-10
  • 打赏
  • 举报
回复
Form窗体有个OnClosing事件,可以取消关闭。

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemwindowsformsformclassclosingtopic.htm
新鲜鱼排 2005-05-10
  • 打赏
  • 举报
回复
如果只是想不关闭程序很容易,但是还要在任务栏里显示吧。
koenemy 2005-05-10
  • 打赏
  • 举报
回复
mark
nocolor 2005-05-10
  • 打赏
  • 举报
回复
为什么托盘里的图标不能随程序退出时而消失。

我在托盘图标上点菜单的退出程序,现在程序可以退出了(刚才关不掉是因为一个进程没有被关闭,而且那个进程正监听某个端口),但托盘图标没有马上消失,只有鼠标移动到上面时才会消失。why?
阿土sap 2005-05-10
  • 打赏
  • 举报
回复
做個托盤就可以
nocolor 2005-05-10
  • 打赏
  • 举报
回复
那么你的那个Exit()方法怎么怎么写,我用Application.Exit()怎么无法退出程序。

目前现象:

    在系统托盘里有一个图标。托盘的右键菜单有两项,显示窗口和退出程序。

退出程序的单击事件里我写了这样的代码:
private void menuItem1_Click(object sender, System.EventArgs e)
{
Application.Exit();
}
程序运行后,把窗口关闭,单击菜单中的显示窗口,窗口正常显示,关闭窗口也正常,但点击退出程序没有任何反应,程序不会退出。why?
yinshuhai 2005-05-10
  • 打赏
  • 举报
回复
忘了,3。要将窗体hide调!!
yinshuhai 2005-05-10
  • 打赏
  • 举报
回复
给你个思路,在点击窗体的关闭按钮的时候会调用系统生成的dispose()方法!你将里面的内容换成。
1。取消任务栏显示,即窗体的showintast什么的一个属性设置为false。
2。启用系统托盘,如果已经有系统托盘就不用了!
为了能够退出程序,再写个方法比如为EXIT()
将刚刚考出的dispose方法的内容方进去,做个托盘的右键菜单退出,在其点击事件中调用EXIT()方法!
应该可行!
mabuchi 2005-05-10
  • 打赏
  • 举报
回复
退出按钮的事件我用Application.Exit()为什么程序还是在运行。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧