自定义控件错误

时间:2013-07-19 16:26:29

标签: c# winforms custom-controls

我正在使用此自定义控件。 (我对这部分编程很新。)我正在开发一个应用程序,当用户在我自己的自定义控件中输入输入时,必须能够格式化数学表达式。这就是我希望控件看起来像这样(这个图像是在Photoshop中制作的):

enter image description here

我不会解释我希望它拥有的行为,因为这对您没有帮助,但想法是它不基于任何Windows控件

这是我已有的代码:

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

namespace Support.Components
{
    public partial class PartialExpressionEditor : Control
    {
        public PartialExpressionEditor()
        {
            InitializeComponent();
        }

        protected override void OnPaint(PaintEventArgs pe)
        {
           base.OnPaint(pe);

           Brush background = Brushes.White;
           pe.Graphics.FillRectangle(background, ClientRectangle);
           background.Dispose();
        }
    }
}

当我尝试将其放入我的表单时,我会收到此错误对话框:

enter image description here

问题出在哪里?或者为什么出现这个错误?

1 个答案:

答案 0 :(得分:2)

我认为问题在于您正在处理系统刷:

// background.Dispose();

因为你没有创建它:

Brush background = Brushes.White;

使用您自己处理的刷子:

using (SolidBrush br = new SolidBrush(Color.White)) {
  pe.Graphics.FillRectangle(br, this.ClientRectangle);
}

您可能必须退出Visual Studio才能刷回Brushes.White。