2

我正在研究这个自定义控件。(我对这部分编程非常陌生。)我正在开发一个应用程序,当用户在我自己的自定义控件中输入输入时,它必须能够格式化数学表达式。这就是我希望控件的外观(此图像是在 Photoshop 中制作的):

在此处输入图像描述

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

这是我已经拥有的代码:

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();
        }
    }
}

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

在此处输入图像描述

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

4

1 回答 1

2

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

// background.Dispose();

因为你没有创建它:

Brush background = Brushes.White;

要使用您自己处置的刷子:

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

您可能必须退出 Visual Studio 才能恢复您的 Brushes.White 画笔。

于 2013-07-19T16:48:59.380 回答