Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 继承表单属性和方法的问题_C#_Inheritance - Fatal编程技术网

C# 继承表单属性和方法的问题

C# 继承表单属性和方法的问题,c#,inheritance,C#,Inheritance,我试图构建一个基本自定义表单,然后让我的应用程序继承基本表单中的属性和方法。我相信我已经正确地设置了表单,但是每次打开继承了VS 2010基本表单的新表单时,VS都会崩溃,我必须重新启动IDE。这是两张表格上的代码 基本定制形式 namespace TGBSoftware { public partial class BaseForm : Form { public int gnTaxYear { get; set; } public string gsTableName { g

我试图构建一个基本自定义表单,然后让我的应用程序继承基本表单中的属性和方法。我相信我已经正确地设置了表单,但是每次打开继承了VS 2010基本表单的新表单时,VS都会崩溃,我必须重新启动IDE。这是两张表格上的代码

基本定制形式

namespace TGBSoftware
{
public partial class BaseForm : Form
{
    public int gnTaxYear { get; set; }
    public string gsTableName { get; set; }
    public string gsUserId { get; set; }

    public BaseForm()
    {
        InitializeComponent();
    }
}
}
继承基窗体的窗体

namespace TGBSoftware.CompuTax.Forms
{
public partial class RealEstate : BaseForm
{
    public RealEstate()
    {
        InitializeComponent();
    }
}
}

您可以做的一件事是在启用日志记录的情况下运行visual studio:


然后查看错误的堆栈跟踪。很可能是缺少dll引用,或者其中一个表单中有一段代码需要使用:if(!DesignMode)…。

您可以在启用日志记录的情况下运行visual studio:

然后查看错误的堆栈跟踪。很可能是缺少dll引用,或者其中一个表单中有一段代码需要用:if(!DesignMode)…包围。

您说“我相信我已正确设置表单”

你为什么不重新安装它呢?

你说“我相信我已经正确地设置了表单”


为什么不重新安装它???

我认为您不能调用
InitializeComponent();
两种形式。请仅在top form中或使用
base.InitializeComponent()进行尝试;

我认为您不能调用
InitializeComponent();
两种形式。请仅在top form中或使用
base.InitializeComponent()进行尝试;

谢谢大家的帮助,但疯狂的解决方案是删除该项目并启动一个新项目。在安全模式下启动并记录日志并不能提供任何洞察

jrb—我尝试了使用和不使用InitializeComponent()这两种方法,但都没有效果。在新项目中,两种表单都有此设置,并且工作良好。我将看到当我创建一个带有导航按钮的表单时会发生什么


再次感谢。祝你有一个美好的一周。

谢谢大家的帮助,但疯狂的解决办法是删除该项目并开始一个新项目。在安全模式下启动并记录日志并不能提供任何洞察

jrb—我尝试了使用和不使用InitializeComponent()这两种方法,但都没有效果。在新项目中,两种表单都有此设置,并且工作良好。我将看到当我创建一个带有导航按钮的表单时会发生什么


再次感谢。祝您一周愉快。

当VS崩溃时,您是否收到任何错误消息?如果是,请列出它们。基本表单包含可视组件?基本表单中InitializeComponent()的内容是什么?我无法找到VS正在创建的任何错误日志。除上述属性外,基窗体没有任何内容。我甚至还没有添加任何方法。以下是InitializeComponent private void InitializeComponent()的内容{this.SuspendLayout();///BaseForm///this.ClientSize=new System.Drawing.Size(785407);this.Name=“BaseForm”;this.Load+=new System.EventHandler(this.BaseForm_Load);this.ResumeLayout(false);}当VS崩溃时,是否收到任何错误消息?如果是,请列出它们。基本表单包含可视组件?InitializeComponent()的内容是什么在基窗体中?我找不到VS正在创建的任何错误日志。基窗体除了上面的属性之外没有任何内容。我甚至还没有添加任何方法。以下是InitializeComponent private void InitializeComponent()的内容{this.SuspendLayout();///BaseForm//this.ClientSize=new System.Drawing.Size(785407);this.Name=“BaseForm”;this.Load+=new System.EventHandler(this.BaseForm\u Load);this.ResumeLayout(false);}谢谢,但是活动日志没有提供任何有用的信息。在设置IDE之前,它会加载所有模块,然后我打开我的解决方案,打开表单,它就会崩溃。活动日志中没有任何内容表明它崩溃的原因。另一个选项是在安全模式下启动Visual Studio:devenv/SafeMode。如果存在此问题,这将有所帮助影响表单设计器的第三方扩展。谢谢,但是活动日志没有提供任何有用的信息。它会加载所有模块,直到IDE设置完毕,然后我打开解决方案,打开表单,表单就会崩溃。活动日志中没有任何内容指示它崩溃的原因。另一个选项是在安全模式下启动Visual Studio:devenv/SafeMode。如果有第三方扩展影响表单设计器,这将有所帮助。感谢jrb,我尝试在基本表单中注释InitializeComponent();但它再次崩溃。我添加了Base.InitializeComponent();到顶部表单,基本表单仍然被注释掉,VS仍然崩溃。请看这里谢谢jrb,我尝试注释掉InitializeComponent();在基本表单中,它再次崩溃。我将base.InitializeComponent()添加到顶部表单,基本表单仍然被注释掉,VS仍然崩溃。请看这里