继承表单时不显示C#设计器

时间:2016-11-23 11:21:31

标签: c# winforms inheritance windows-forms-designer form-load

我在导出名为PrinterForm的表单时遇到问题 这是表单的代码:

public partial class PrinterForm : Form
{
    public PrinterForm()
    {
        InitializeComponent();
    }

    private void PrinterForm_Load(object sender, EventArgs e)
    {
        LoadSomething();
    }

    private void LoadSomething()
    {
        //Return a List<dynamic> of Dapper (query work fine!). The function is already used elsewhere so no problem here
        var list = new DapperRepository().GetAllOfSomething(); 
    }
}

这是儿童形式的代码:

public partial class FormChildren : PrinterForm
{
    public FormChildren()
    {
        InitializeComponent();
    }
}

当我尝试访问FormChildren设计器时,会报告错误并且不会显示。 报告给我的错误如下:

  

System.Windows.Forms.Design.IEventHandlerService

尝试评论LoadSomething功能可以正确显示设计师。

问题是什么?

2 个答案:

答案 0 :(得分:1)

我认为你的问题出现在LoadSomething函数中,你应该尝试设置一个条件,以便在你与设计师合作时不会执行它。

请参阅:Error when opening designer on inherited form

答案 1 :(得分:0)

我遇到了同样的问题。我通过向子窗体构造函数添加 base() 解决了我的问题。

public partial class FormChildren : ParentForm
{
    public FormChildren() : base()
    {
        InitializeComponent();
    }
}