32

他のクラスが継承するフォーム基本クラスを含む Visual Studio 2010 Windows フォーム アプリがあります。基本クラスのコンストラクターは、子クラスが基本クラスに渡すパラメーターを受け取ります。

例:

public partial class BaseForm : Form
{
    public BaseForm(int number)
    {
        InitializeComponent();
    }
}

public partial class ChildForm : BaseForm
{
    public ChildForm(int number)
        : base(number)
    {
        InitializeComponent();
    }
}

私が直面している問題は、VisualStudio のデザイン ビュー モードで ChildForm を開こうとすると、次のエラーが表示されることです。

タイプ 'MyProject.BaseForm' のコンストラクターが見つかりません。

注: エラーに関係なく、プロジェクトは正常にコンパイルおよび実行されます。

パラメーターを含まないコンストラクターでコンストラクターをオーバーロードすると、エラーを回避できます。

例: (これによりエラーが解消されます)

public partial class BaseForm : Form
{
    public BaseForm(int number)
    {
        InitializeComponent();
    }

    public BaseForm()
    {
        InitializeComponent();
    }
}

public partial class ChildForm : BaseForm
{
    public ChildForm(int number)
        : base(number)
    {
        InitializeComponent();
    }
}

私の質問は、パラメーターなしのコンストラクターを含まず、デザイン ビュー エラーを回避する基本クラスを作成するにはどうすればよいですか?

4

2 に答える 2

0

BaseForm 出力タイプを調整する必要があります。プロジェクトのプロパティで、出力タイプを Windows アプリケーションからクラス ライブラリに変更します。

参照: https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/walkthrough-demonstrating-visual-inheritance

于 2020-03-25T09:27:27.567 に答える