0

Panel から継承する C# Winforms で単純なカスタム コントロールを作成しようとしていますが、「UserControl」ではなく「Panel」から継承するように変更するとすぐに、次のエラーが発生します。

ここに画像の説明を入力

クラス全体のコードは次のとおりです。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SETPaint
{
    public partial class Canvas : Panel
    {
        public Canvas()
        {
        InitializeComponent();
        }

        private void Canvas_Load(object sender, EventArgs e)
        {

        }
    }
}
4

2 に答える 2

3

Designer.cs ファイルの行 'this.AutoScaleDimensions = ...' を削除します (例外に従って行 35)。おそらく「this.AutoScaleMode = .Font」に似た別のものもあります。

この問題は、Control が UserControl から派生したときに Designer を使用し、InitializeComponent() メソッドでいくつかの既定のプロパティを設定したために発生します。これらのプロパティは UserControl 基本型の一部ですが、Panel 基本型ではありません。

IDE デザイナーは Designer.cs ファイルを読み込んでこの問題を解決できないため、手動で行う必要があります。

于 2012-10-09T01:19:50.810 に答える
-1

あなたのコードは次のようになります

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace SETPaint
{
    public class Canvas : Panel
    {

    }
}

ソリューションをビルドすると、ツールボックスに Canvas というアイテムが表示されます。

于 2012-10-09T01:07:08.217 に答える