DxC*_*xCK 5 .net c# crash custom-controls winforms
以下代码是自定义控件.在Visual Studio设计器中使用此控件会导致Visual Studio崩溃,而没有任何明显的细节.
我正在使用Visual Studio 2008.
我在这里做错了吗?
using System;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace InstalacionesSayma.GUI
{
public class CustomControlTest : Panel
{
private Label _label;
public CustomControlTest()
{
_label = new Label();
this.Controls.Add(_label);
}
public override Font Font
{
get
{
return _label.Font;
}
set
{
_label.Font = value;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
崩溃的发生是因为您在Font行为中拥有的内容.您将覆盖面板的Font属性的预期行为.将字体代码更改为以下内容会导致崩溃消失:
public override Font Font
{
get
{
return base.Font;
}
set
{
base.Font = value;
_label.Font = value;
}
}
Run Code Online (Sandbox Code Playgroud)
当设计期间出现异常时,VS2005 会崩溃到桌面。这不可能是由您发布的代码引起的。我怀疑我们正在查看真正的代码,这个控件没有做任何事情。
请小心构造函数和事件处理程序,它们也会运行设计时间。如果您执行任何严重依赖于程序状态的操作,例如尝试打开文件或与数据库服务器通信等,请通过检查 this.DesignMode 属性来避免运行此类代码。