窗体关闭的疑问

crazyceo 2010-11-02 11:00:36
我的窗体上有一个关闭按钮,代码如下

        private void button2_Click(object sender, EventArgs e)
{
SqlConnection sqlCon11 = new SqlConnection(connectmorning);
try
{
//Open DataBase
//打开数据库
sqlCon11.Open();
string sql11;

sql11 = "drop table gaofengtem_table";
SqlCommand cmd11 = new SqlCommand(sql11, sqlCon11);
DataTable dt11 = new DataTable("T_yongduone11111");
SqlDataAdapter dAd11 = new SqlDataAdapter(cmd11);
dAd11.Fill(dt11);
//dataGridView1.DataSource = dt11;
}
catch
{
//Can not Open DataBase
//打开不成功 则连接不成功
MessageBox.Show("数据库表单选择错误!");
}
finally
{
//Close DataBase
//关闭数据库连接
sqlCon11.Close();
Close();
}
}


他是关闭,我也想用户在点击这个窗体的右上角的那个叉叉。。。就是关闭的那个叉叉的时候也执行这个一模一样的代码
但是总是出问题,请问我想那个叉叉点击以后,就调用这个代码执行而无误,请问如何弄,谢谢了
...全文
191 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmHua 2010-11-02
  • 打赏
  • 举报
回复
既然Closing里调了,原来那个按钮就不用再调了,要不不就调了两遍了。还有,在Finallly里也没有必要再调Close()了
crazyceo 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]
稍微加一点


C# code
bool suspend_call = false;
public void Form_Closing(...参数略)
{
if(suspend_call) return;
su……
[/Quote]

您好,这样点叉叉没问题了

但是目前来说,点击原来那个关闭按钮,他居然把catch里的东西也执行了一遍
就是说,他除了drop掉了表(这是我需要的),同时他也MessageBox.Show("数据库表单选择错误!");

这是只有点击关闭按钮弹出的,点叉叉关闭没事了,请再看看
兔子-顾问 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]
Form_Closing 事件里调用。

button2_Click(null, null);
[/Quote]
稍微加一点

bool suspend_call = false;
public void Form_Closing(...参数略)
{
if(suspend_call) return;
suspend_call = true;
button2.PerformClick();
}
crazyceo 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]
Form_Closing 事件里调用。

button2_Click(null, null);
[/Quote]

不行,无限弹MessageBox.Show("数据库表单选择错误!");
机器人 2010-11-02
  • 打赏
  • 举报
回复
Form_Closing 事件里调用。

button2_Click(null, null);
li309000011 2010-11-02
  • 打赏
  • 举报
回复
点叉叉的时候关闭数据库连接 关闭窗体就好了吧 为什么还要执行try里的东西哦~?
zhongxiangkeji 2010-11-02
  • 打赏
  • 举报
回复
本公司团队拥有10年的网站建设经验,实力超班,相信能够为您提供最优质的服务,期待与您的合作,谢谢!
DevinHu 2010-11-02
  • 打赏
  • 举报
回复

protected override void WndProc(ref Message m)
{
重写这个方法...
}
机器人 2010-11-02
  • 打赏
  • 举报
回复
把关闭Button里的代码移到Form_Closing里面,然后:

 
private void button2_Click(object sender, EventArgs e)
{
//这里就调一句,触发Form_Closing
this.Close();
}


也就是无论按钮还是叉叉都走Form_Closing。

111,129

社区成员

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

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

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