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來解決這個問題。

如果定義抽象父類是爲了定義子窗體的公共方法,那麼在父類中定義虛函數即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章