c#-尝试创建最小化的表单时出现StackOverflowException
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-尝试创建最小化的表单时出现StackOverflowException,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1189字,纯文字阅读大概需要2分钟。
内容图文
![c#-尝试创建最小化的表单时出现StackOverflowException](/upload/InfoBanner/zyjiaocheng/656/470390114f7a4d27a538e3879088beec.jpg)
我的问题很简单.我有这个新表格,我只是编写以下代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Resize += new EventHandler(Form1_Resize);
this.WindowState = FormWindowState.Minimized;
}
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
ShowInTaskbar = false;
}
else if (WindowState == FormWindowState.Normal)
{
ShowInTaskbar = true;
}
}
}
我希望此表单开始最小化,并且仅在未最小化表单时才显示任务栏图标.但是当我运行它时,我收到一个StackOverflowException.我认为ShowInTaskbar = false正在调用resize方法.
解决方法:
将自动最小化放置在“ Load”事件中,而不是构造函数中.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Resize += new EventHandler(Form1_Resize);
this.Load += new EventHandler(Form1_Load);
}
void Form1_Load(object sender, EventArgs e)
{
WindowState = FormWindowState.Minimized;
}
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
ShowInTaskbar = false;
}
else if (WindowState == FormWindowState.Normal)
{
ShowInTaskbar = true;
}
}
}
我不完全确定为什么这可以防止堆栈溢出,但是一旦发现,我将立即更新答案.重现问题后,我已经对其进行了测试,可以确认它是否有效!
内容总结
以上是互联网集市为您收集整理的c#-尝试创建最小化的表单时出现StackOverflowException全部内容,希望文章能够帮你解决c#-尝试创建最小化的表单时出现StackOverflowException所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。