C#中的窗体关闭事件

本人做了个类似QQ的聊天工具,登陆的时候能够判断在线或离线,现在想在退出程序的时候将数据库中的状态改为离线,可是不知道怎么弄,请个人高手帮忙,另外,要求当直接任务管理器里... 本人做了个类似QQ的聊天工具,登陆的时候能够判断在线或离线,现在想在退出程序的时候将数据库中的状态改为离线,可是不知道怎么弄,请个人高手帮忙,另外,要求当直接任务管理器里结束进程或突然死机的时候一样能修改状态 展开
 我来答
火沙
2009-07-31 · TA获得超过954个赞
知道小有建树答主
回答量:478
采纳率:0%
帮助的人:398万
展开全部
你可以在Application.ApplicationExit事件中修改数据库中的状态(离线)
Application.ApplicationExit += new EventHandler(this.OnApplicationExit);//这句在程序运行时加

private void OnApplicationExit(object sender, EventArgs e)
{
//此处改数据库中状态
}

但是要想结束进程或突然死机也改,是不可能的。像直接断电源、断网等,都不可能再有操作的了
QQ也没法解决这个问题,
但可以每隔几分钟改一下数据库中的一个时间字段,如3分钟,服务器再写个程序每隔5分钟更新一下状态,如(Update 表名 Set 状态=离线 where 状态= 在线 and (当前时间-3分钟)>时间字段)
神仙ONLINE
推荐于2016-07-03 · TA获得超过377个赞
知道答主
回答量:224
采纳率:0%
帮助的人:123万
展开全部
恩,对窗体关闭事件进行拦截,如下:
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Main_FormClosed);

然后在 Main_FormClosed 方法体内 书写相应的的逻辑代码。
窗体会在关闭时,调用该方法体内的逻辑
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海洋娣
2009-07-31 · TA获得超过268个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:0
展开全部
1.重写析构函数,释放资源。在类事件里处理数据库中的记录。

2.或者Closing | Closed
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
终青欧山梅
2020-07-02 · TA获得超过3572个赞
知道大有可为答主
回答量:3104
采纳率:33%
帮助的人:175万
展开全部
还是隐藏比较合适,因为在Program.cs中,默认是启动form1,如果form1关闭了,程序就退出了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
用新首熹
2020-05-14 · TA获得超过4212个赞
知道小有建树答主
回答量:3144
采纳率:33%
帮助的人:187万
展开全部
1、在Program.cs里先打开form2
2、在form2中的构造函数中这样写:

public
Form2()

{

Form1 form1
=
new
Form1();

if
(form1.ShowDialog()!=DialogResult.OK)

{

return;

}

InitializeComponent();

}
3、在form1中打开form2的事件上这样写:
this.DialogResult
=
DialogResult.OK;
this.Close();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式