尝试在继承自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)
{
}
}
}
答案 0 :(得分:3)
删除Designer.cs文件中的'this.AutoScaleDimensions = ...'行(根据例外,第35行)。可能还有另一个类似'this.AutoScaleMode = .Font'。
出现此问题的原因是,当Control从UserControl派生时,您使用了Designer,并在InitializeComponent()方法中设置了一些默认属性。这些属性是UserControl基类型的一部分,但不是Panel基类型。
由于IDE Designer无法加载Designer.cs文件来解决此问题,因此您需要手动执行此操作。
答案 1 :(得分:-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的项目