0

次のコードがあります。

public partial class Painter : Form
    {
        private System.ComponentModel.Container Components = null;

        private const int m_intDIAMETER = 8;

        private const int m_intMOUSEUP_DIAMETER = 4;

        private Graphics m_objGraphic;

        private bool m_binShouldPaint = false;

        private bool m_binShouldErase = false;



        public Painter()
        {
            InitializeComponent();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                    //components = null;
                }
            }
            base.Dispose(disposing);
        }
        static void Main()
        {
            Application.Run(new Painter());
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            m_objGraphic = CreateGraphics();

        }

        private void Painter_MouseDown(object sender,System.Windows.Forms.MouseEventArgs e)
        {
            //m_objGraphic.FillEllipse(new SolidBrush(Color.HotPink), e.X, e.Y, m_intDIAMETER, m_intDIAMETER);
            //m_binShouldPaint = true;

            if (e.Button == MouseButtons.Left)
            {
                m_binShouldPaint = true;
            }
            else if (e.Button == MouseButtons.Right)
            {
                m_binShouldErase = true;
            }
        }

コンパイル時に、私のデバッガーは次のエラーを生成します:

Error   1   Type 'Painter.Painter' already defines a member called 'Dispose' with the same parameter types

Dispose メソッドはプログラムによって生成されると思います。そのため、「Dispose」を生成せずに記述すると、エラーが発生します。しかし、どうすれば修正できますか?

4

1 に答える 1

2

Disposeデザイナーが生成したファイルに別のメソッドがあります。つまりPainter.Designer.cs、 にカスタム実装がある場合はDispose、ファイル内の実装を変更するかPainter.Designer.cs、コード ビハインドに移動します。

Visual Studiodesigner.csはすべてのファイルを生成しますForm。そのファイルには、フォームで使用されるコントロールに関するコードが含まれており、Disposeメソッドの実装も含まれています。Disposeコード ビハインドに 1 つあるため、同じクラスに複数のメソッドがあるというエラーが発生します。(両方のファイルはpartialキーワードを通じて同じクラスを持っています)

ここに画像の説明を入力

于 2013-10-22T20:21:41.573 に答える