winform设计器必须创建类型的实例,但该类型已声明为抽象,因此设计器无法创建该类型的实例

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace VisionSystem
{
#if DEBUG
    public partial class RootForm
#else
    public abstract partial class RootForm
#endif
:Form 
    {
        public RootForm()
        {
            InitializeComponent();
        }
#if DEBUG
        public virtual bool StartRun() { return true; }
#else
        public abstract bool StartRun();
#endif

    }
}

因为在实例化子类窗体的时候,要先实例化父类窗体。父类窗体设置为abstract,则不能实例化。

我们可以用#if Debug来解决这个问题。

如果定义抽象父类是为了定义子窗体的公共方法,那么在父类中定义虚函数即可。

你可能感兴趣的:(winform)