0

尝试在从 Panel 继承的 C# Winforms 中创建一个简单的自定义控件,但是一旦我将其更改为从“Panel”而不是“UserControl”继承,我就会收到此错误:

在此处输入图像描述

这是整个类的代码:

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 无法加载 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 回答