winform问题,close()方法能关闭窗体吗?谢谢 c#
代码:privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse){DialogResultre=Me...
代码:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult re=MessageBox.Show("关闭窗口ma", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) ;
Console.WriteLine(re);
if (re== DialogResult.OK)
{
this.Close();
//this.Dispose();
}
}
如果if块里面调用close方法,而且如果单击对话框的确定就会一直弹出对话框,确定一个弹一个。直到单击取消,才退出程序(当然没走if,是该方法执行完了)。
但是使用dispose方法就可以单击确定正常关闭。
求解这两个方法的区别,谢谢! 展开
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult re=MessageBox.Show("关闭窗口ma", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) ;
Console.WriteLine(re);
if (re== DialogResult.OK)
{
this.Close();
//this.Dispose();
}
}
如果if块里面调用close方法,而且如果单击对话框的确定就会一直弹出对话框,确定一个弹一个。直到单击取消,才退出程序(当然没走if,是该方法执行完了)。
但是使用dispose方法就可以单击确定正常关闭。
求解这两个方法的区别,谢谢! 展开
展开全部
Private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult re = MessageBox.Show("关闭窗口ma", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (re == DialogResult.OK)
{
猜仔 //这里什么都不用做,直接退出穗蔽汪
}
并腊 else
{
e.Cancel = true;
//其它选择就不退出
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult re = MessageBox.Show("关闭窗口ma", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (re == DialogResult.OK)
{
this.Close();
//这里就会都会重复执行formClosing这个方法,成了一个死循环
}
else
{
e.Cancel = true;
//其它选择就不退出
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult re = MessageBox.Show("关闭窗口ma", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (re == DialogResult.OK)
{
this.Dispose();//是释放当前的整个窗体资源,不会重复执行formClosing这个方法,所以退出了
}
else
{
e.Cancel = true;
//其它选择就不退出
}
}
展开全部
你执行的this.Close() 这个方法的委托就是 Form1_FormClosing这个方法。你每次点击弹出框的确定按钮都会重复执行formClosing这个方法,成了一个死循环,只有当你点击取消的时候,不会重复执行formClosing方法。this.dispose()是释放当前的整个窗体稿历资源,也卖培就是你的中敬唯这个窗体类的资源。其实他两个没啥区别。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Close表示的是将窗体关闭掉,Dispose表示的是将窗体从内存中施放掉,Close在前Dispose在后
含义是不同的,虽然在你的代码里效果是一样的
就好比轿举春Load和Shown一样,前者是闭耐窗体答蚂加载完成,后者是窗体显示完成
含义是不同的,虽然在你的代码里效果是一样的
就好比轿举春Load和Shown一样,前者是闭耐窗体答蚂加载完成,后者是窗体显示完成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个代码我现在没工具去尝试。
不过看上去好御禅者像是一个死循环?
你把方袭销法写在FormClosing 这个窗镇薯口关闭时的事件里面,
每次弹出框你选择关闭的时候选择“是”你又跳回这个方法。
你可以断点调式自己来看。
如果你只想进一次这个FormClosing事件的话,外面定义一个全局变量来控制一下就好。
不过看上去好御禅者像是一个死循环?
你把方袭销法写在FormClosing 这个窗镇薯口关闭时的事件里面,
每次弹出框你选择关闭的时候选择“是”你又跳回这个方法。
你可以断点调式自己来看。
如果你只想进一次这个FormClosing事件的话,外面定义一个全局变量来控制一下就好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
反编译看,Close里面调用Dispose() ,但在msdn里面:
在毁桐皮以下两种情况下调用 Close 不会轮闷释放窗体:(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是纤差不可见的;(2) 您是使用 ShowDialog 显示的该窗体。在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
望采纳!
在毁桐皮以下两种情况下调用 Close 不会轮闷释放窗体:(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是纤差不可见的;(2) 您是使用 ShowDialog 显示的该窗体。在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
望采纳!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询