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

C# designer is not shown when Inheritance form

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

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功能可以正确显示设计器。

有什么问题?

我认为你的问题出在 LoadSomething 函数中,你应该尝试设置一个条件,这样当你与设计器一起工作时它就不会被执行。

参见:Error when opening designer on inherited form

我遇到了同样的问题。我通过将 base() 添加到子表单构造函数来解决我的问题。

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