Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绘制时替换旧值_C#_.net - Fatal编程技术网

C# 绘制时替换旧值

C# 绘制时替换旧值,c#,.net,C#,.net,我正在使用Windows窗体应用程序,使用一个按钮生成随机数并在窗体上绘图。当点击按钮时,它会使用图形绘制方法添加一个随机数。问题是当我第一次按下按钮时,它工作正常,并添加一个随机数,即11111。当我再次按下按钮时,它会添加一个新的随机数(在下一个位置),但它也会将以前的数字更改为新生成的随机数 更新:(添加完整代码) 编辑:我已将随机数移到独家新闻之外,因此现在它不会生成相同的数字,但仍会将旧随机数更改为其他随机数 主要类别: using System; using System.Colle

我正在使用Windows窗体应用程序,使用一个按钮生成随机数并在窗体上绘图。当点击按钮时,它会使用图形绘制方法添加一个随机数。问题是当我第一次按下按钮时,它工作正常,并添加一个随机数,即11111。当我再次按下按钮时,它会添加一个新的随机数(在下一个位置),但它也会将以前的数字更改为新生成的随机数

更新:(添加完整代码)

编辑:我已将随机数移到独家新闻之外,因此现在它不会生成相同的数字,但仍会将旧随机数更改为其他随机数

主要类别:

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

namespace DrawingText
{
    public partial class Form1 : Form
    {

        private Point mouseDownPosition = new Point(0, 0);
        private Point mouseMovePosition = new Point(0, 0);
        private int mousePressdDown;
        private ArrayList drawnItemsList;
        Random rnd;

        public Form1()
        {
            InitializeComponent();
            drawnItemsList = new ArrayList();
            this.rnd = new Random();

        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            mouseMovePosition = e.Location;
            if (e.Button == MouseButtons.Left)
                mousePressdDown = 1;

        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
                mouseDownPosition = e.Location;
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (mousePressdDown == 1)
            {
                label1.Text = "X: " + mouseMovePosition.X.ToString();
                label2.Text = "Y: " + mouseMovePosition.Y.ToString();
                this.Invalidate();
            }
            DrawingData a = new DrawingData(mouseMovePosition, mouseDownPosition);
            drawnItemsList.Add(a);
            mousePressdDown = 0;

        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            foreach (DrawingData a in drawnItemsList)
            {
                draw(e.Graphics, a.old, a.cur);

            }
         draw(e.Graphics, mouseDownPosition, mouseMovePosition);


        }
        private void draw(Graphics e, Point mold, Point mcur)
        {
            Pen p = new Pen(Color.Black, 2);

                    using (Font useFont = new Font("Gotham Medium", 28, FontStyle.Bold))
                    {
                            string header2 = rnd.Next().ToString();
                            RectangleF header2Rect = new RectangleF();
                            int moldX = mold.X - 5;
                            int moldY = mold.Y;

                            header2Rect.Location = new Point(moldX, moldY);
                            header2Rect.Size = new Size(600, ((int)e.MeasureString(header2, useFont, 600, StringFormat.GenericTypographic).Height));
                            e.DrawString(header2, useFont, Brushes.Black, header2Rect);
                        }
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }
    }
}
namespace DrawingText
{
    public partial class Form1 : Form
    {
        private Point mouseDownPosition = new Point(0, 0);
        private Point mouseMovePosition = new Point(0, 0);
        private int mousePressdDown;
        private ArrayList drawnItemsList;
        Random rnd;

        public Form1()
        {
            InitializeComponent();
            drawnItemsList = new ArrayList();
            this.rnd = new Random();
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (mousePressdDown == 1)
            {
                label1.Text = "X: " + mouseMovePosition.X.ToString();
                label2.Text = "Y: " + mouseMovePosition.Y.ToString();
                this.Invalidate();
            }
            DrawingData a = new DrawingData(mouseMovePosition, mouseDownPosition, rnd.Next().ToString());
            drawnItemsList.Add(a);
            mousePressdDown = 0;
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            foreach (DrawingData a in drawnItemsList)
            {
                draw(e.Graphics, a);
            }
            draw(e.Graphics, mouseDownPosition, mouseMovePosition);
        }

        private void draw(Graphics e, DrawingData a)
        {
            Pen p = new Pen(Color.Black, 2);

            using (Font useFont = new Font("Gotham Medium", 28, FontStyle.Bold))
            {
                RectangleF header2Rect = new RectangleF();
                int moldX = a.old.X - 5;
                int moldY = a.old.Y;

                header2Rect.Location = new Point(moldX, moldY);
                header2Rect.Size = new Size(600, ((int)e.MeasureString(header2, useFont, 600, StringFormat.GenericTypographic).Height));
                e.DrawString(a.Rand, useFont, Brushes.Black, header2Rect);
            }
        }
    }
}
图形数据类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace DrawingText
{
    [Serializable]
    class DrawingData
    {
        private Point mold; // mouseDown position
        private Point mcur; // mouseUp poslition

        public DrawingData()
        {
            mold = new Point(0, 0);
            mcur = new Point(0, 0);
        }
        public DrawingData(Point old, Point cur)
        {
            mold = old;
            mcur = cur;
        }

        public Point old
        {
            get
            {
                return mold;
            }
            set
            {
                mold = value;
            }
        }

        public Point cur
        {
            get
            {
                return mcur;
            }
            set
            {
                mcur = value;
            }
        }


    }
}
namespace DrawingText
{
    [Serializable]
    public class DrawingData
    {
        private Point mold; // mouseDown position
        private Point mcur; // mouseUp poslition
        private string randValue; // random data value

        public DrawingData()
        {
            mold = new Point(0, 0);
            mcur = new Point(0, 0);
            randValue = String.Empty;
        }

        public DrawingData(Point old, Point cur, string rand)
        {
            mold = old;
            mcur = cur;
            randValue = rand;
        }

        public Point old
        {
            get
            {
                return mold;
            }
            set
            {
                mold = value;
            }
        }

        public Point cur
        {
            get
            {
                return mcur;
            }
            set
            {
                mcur = value;
            }
        }

        public sting Rand
        {
            get
            {
                return randValue;
            }
            set
            {
                randValue = value;
            }
     }
}
点击按钮3次,将旧值替换为新值:

您每次在循环中都在重新创建随机数,这将使它具有相同的种子和相同的第一个数字。这就是为什么你所有的数字都是一样的。你应该

  • 将随机变量移到方法和循环之外,并改用它。将行Random rnd=new Random()更改为rnd=new Random()。类中已经有一个变量来保存随机变量

  • 如果您希望以前的随机数与上次保持相同,则需要将它们存储在某个位置的列表中,并在绘图上绘制它们。您当前每次都在创建一组新的随机数


  • 您每次在循环中都在重新创建随机数,这将使它具有相同的种子和相同的第一个数字。这就是为什么你所有的数字都是一样的。你应该

  • 将随机变量移到方法和循环之外,并改用它。将行Random rnd=new Random()更改为rnd=new Random()。类中已经有一个变量来保存随机变量

  • 如果您希望以前的随机数与上次保持相同,则需要将它们存储在某个位置的列表中,并在绘图上绘制它们。您当前每次都在创建一组新的随机数


  • 这是使用图形路径动态创建的:

        GraphicsPath gp;
        int moldX = 10;
        int moldY = 10;
    
        public Form1()
        {
            InitializeComponent();
            gp = new GraphicsPath();  
        }
    
    
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
            e.Graphics.FillPath(Brushes.Black, gp);
            // if you want the numbers outlined do e.Graphics.DrawPath
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            AddToPath();
            Invalidate();   
        }
    
        private void AddToPath()
        {
            using (Font useFont = new Font("Gotham Medium", 28, FontStyle.Bold))
            {
                Random rnd = new Random();
                string header2 = rnd.Next().ToString();
                int strsize = TextRenderer.MeasureText(header2, useFont).Height;
                StringFormat format = StringFormat.GenericDefault;
                gp.AddString(header2, useFont.FontFamily, 1, 28, new Point(moldX, moldY), format);
    
                moldX += 5;
                moldY += strsize;
            }
        }
    

    这是使用图形路径动态创建的:

        GraphicsPath gp;
        int moldX = 10;
        int moldY = 10;
    
        public Form1()
        {
            InitializeComponent();
            gp = new GraphicsPath();  
        }
    
    
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
            e.Graphics.FillPath(Brushes.Black, gp);
            // if you want the numbers outlined do e.Graphics.DrawPath
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            AddToPath();
            Invalidate();   
        }
    
        private void AddToPath()
        {
            using (Font useFont = new Font("Gotham Medium", 28, FontStyle.Bold))
            {
                Random rnd = new Random();
                string header2 = rnd.Next().ToString();
                int strsize = TextRenderer.MeasureText(header2, useFont).Height;
                StringFormat format = StringFormat.GenericDefault;
                gp.AddString(header2, useFont.FontFamily, 1, 28, new Point(moldX, moldY), format);
    
                moldX += 5;
                moldY += strsize;
            }
        }
    

    您需要将随机值与点值一起存储在
    DrawingData
    类中,如下所示:

    主要类别:

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace DrawingText
    {
        public partial class Form1 : Form
        {
    
            private Point mouseDownPosition = new Point(0, 0);
            private Point mouseMovePosition = new Point(0, 0);
            private int mousePressdDown;
            private ArrayList drawnItemsList;
            Random rnd;
    
            public Form1()
            {
                InitializeComponent();
                drawnItemsList = new ArrayList();
                this.rnd = new Random();
    
            }
    
            private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
                mouseMovePosition = e.Location;
                if (e.Button == MouseButtons.Left)
                    mousePressdDown = 1;
    
            }
    
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                    mouseDownPosition = e.Location;
            }
    
            private void Form1_MouseUp(object sender, MouseEventArgs e)
            {
                if (mousePressdDown == 1)
                {
                    label1.Text = "X: " + mouseMovePosition.X.ToString();
                    label2.Text = "Y: " + mouseMovePosition.Y.ToString();
                    this.Invalidate();
                }
                DrawingData a = new DrawingData(mouseMovePosition, mouseDownPosition);
                drawnItemsList.Add(a);
                mousePressdDown = 0;
    
            }
    
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                foreach (DrawingData a in drawnItemsList)
                {
                    draw(e.Graphics, a.old, a.cur);
    
                }
             draw(e.Graphics, mouseDownPosition, mouseMovePosition);
    
    
            }
            private void draw(Graphics e, Point mold, Point mcur)
            {
                Pen p = new Pen(Color.Black, 2);
    
                        using (Font useFont = new Font("Gotham Medium", 28, FontStyle.Bold))
                        {
                                string header2 = rnd.Next().ToString();
                                RectangleF header2Rect = new RectangleF();
                                int moldX = mold.X - 5;
                                int moldY = mold.Y;
    
                                header2Rect.Location = new Point(moldX, moldY);
                                header2Rect.Size = new Size(600, ((int)e.MeasureString(header2, useFont, 600, StringFormat.GenericTypographic).Height));
                                e.DrawString(header2, useFont, Brushes.Black, header2Rect);
                            }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
            }
        }
    }
    
    namespace DrawingText
    {
        public partial class Form1 : Form
        {
            private Point mouseDownPosition = new Point(0, 0);
            private Point mouseMovePosition = new Point(0, 0);
            private int mousePressdDown;
            private ArrayList drawnItemsList;
            Random rnd;
    
            public Form1()
            {
                InitializeComponent();
                drawnItemsList = new ArrayList();
                this.rnd = new Random();
            }
    
            private void Form1_MouseUp(object sender, MouseEventArgs e)
            {
                if (mousePressdDown == 1)
                {
                    label1.Text = "X: " + mouseMovePosition.X.ToString();
                    label2.Text = "Y: " + mouseMovePosition.Y.ToString();
                    this.Invalidate();
                }
                DrawingData a = new DrawingData(mouseMovePosition, mouseDownPosition, rnd.Next().ToString());
                drawnItemsList.Add(a);
                mousePressdDown = 0;
            }
    
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                foreach (DrawingData a in drawnItemsList)
                {
                    draw(e.Graphics, a);
                }
                draw(e.Graphics, mouseDownPosition, mouseMovePosition);
            }
    
            private void draw(Graphics e, DrawingData a)
            {
                Pen p = new Pen(Color.Black, 2);
    
                using (Font useFont = new Font("Gotham Medium", 28, FontStyle.Bold))
                {
                    RectangleF header2Rect = new RectangleF();
                    int moldX = a.old.X - 5;
                    int moldY = a.old.Y;
    
                    header2Rect.Location = new Point(moldX, moldY);
                    header2Rect.Size = new Size(600, ((int)e.MeasureString(header2, useFont, 600, StringFormat.GenericTypographic).Height));
                    e.DrawString(a.Rand, useFont, Brushes.Black, header2Rect);
                }
            }
        }
    }
    
    图形数据类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Drawing;
    
    namespace DrawingText
    {
        [Serializable]
        class DrawingData
        {
            private Point mold; // mouseDown position
            private Point mcur; // mouseUp poslition
    
            public DrawingData()
            {
                mold = new Point(0, 0);
                mcur = new Point(0, 0);
            }
            public DrawingData(Point old, Point cur)
            {
                mold = old;
                mcur = cur;
            }
    
            public Point old
            {
                get
                {
                    return mold;
                }
                set
                {
                    mold = value;
                }
            }
    
            public Point cur
            {
                get
                {
                    return mcur;
                }
                set
                {
                    mcur = value;
                }
            }
    
    
        }
    }
    
    namespace DrawingText
    {
        [Serializable]
        public class DrawingData
        {
            private Point mold; // mouseDown position
            private Point mcur; // mouseUp poslition
            private string randValue; // random data value
    
            public DrawingData()
            {
                mold = new Point(0, 0);
                mcur = new Point(0, 0);
                randValue = String.Empty;
            }
    
            public DrawingData(Point old, Point cur, string rand)
            {
                mold = old;
                mcur = cur;
                randValue = rand;
            }
    
            public Point old
            {
                get
                {
                    return mold;
                }
                set
                {
                    mold = value;
                }
            }
    
            public Point cur
            {
                get
                {
                    return mcur;
                }
                set
                {
                    mcur = value;
                }
            }
    
            public sting Rand
            {
                get
                {
                    return randValue;
                }
                set
                {
                    randValue = value;
                }
         }
    }
    

    您需要将随机值与点值一起存储在
    DrawingData
    类中,如下所示:

    主要类别:

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace DrawingText
    {
        public partial class Form1 : Form
        {
    
            private Point mouseDownPosition = new Point(0, 0);
            private Point mouseMovePosition = new Point(0, 0);
            private int mousePressdDown;
            private ArrayList drawnItemsList;
            Random rnd;
    
            public Form1()
            {
                InitializeComponent();
                drawnItemsList = new ArrayList();
                this.rnd = new Random();
    
            }
    
            private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
                mouseMovePosition = e.Location;
                if (e.Button == MouseButtons.Left)
                    mousePressdDown = 1;
    
            }
    
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                    mouseDownPosition = e.Location;
            }
    
            private void Form1_MouseUp(object sender, MouseEventArgs e)
            {
                if (mousePressdDown == 1)
                {
                    label1.Text = "X: " + mouseMovePosition.X.ToString();
                    label2.Text = "Y: " + mouseMovePosition.Y.ToString();
                    this.Invalidate();
                }
                DrawingData a = new DrawingData(mouseMovePosition, mouseDownPosition);
                drawnItemsList.Add(a);
                mousePressdDown = 0;
    
            }
    
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                foreach (DrawingData a in drawnItemsList)
                {
                    draw(e.Graphics, a.old, a.cur);
    
                }
             draw(e.Graphics, mouseDownPosition, mouseMovePosition);
    
    
            }
            private void draw(Graphics e, Point mold, Point mcur)
            {
                Pen p = new Pen(Color.Black, 2);
    
                        using (Font useFont = new Font("Gotham Medium", 28, FontStyle.Bold))
                        {
                                string header2 = rnd.Next().ToString();
                                RectangleF header2Rect = new RectangleF();
                                int moldX = mold.X - 5;
                                int moldY = mold.Y;
    
                                header2Rect.Location = new Point(moldX, moldY);
                                header2Rect.Size = new Size(600, ((int)e.MeasureString(header2, useFont, 600, StringFormat.GenericTypographic).Height));
                                e.DrawString(header2, useFont, Brushes.Black, header2Rect);
                            }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
            }
        }
    }
    
    namespace DrawingText
    {
        public partial class Form1 : Form
        {
            private Point mouseDownPosition = new Point(0, 0);
            private Point mouseMovePosition = new Point(0, 0);
            private int mousePressdDown;
            private ArrayList drawnItemsList;
            Random rnd;
    
            public Form1()
            {
                InitializeComponent();
                drawnItemsList = new ArrayList();
                this.rnd = new Random();
            }
    
            private void Form1_MouseUp(object sender, MouseEventArgs e)
            {
                if (mousePressdDown == 1)
                {
                    label1.Text = "X: " + mouseMovePosition.X.ToString();
                    label2.Text = "Y: " + mouseMovePosition.Y.ToString();
                    this.Invalidate();
                }
                DrawingData a = new DrawingData(mouseMovePosition, mouseDownPosition, rnd.Next().ToString());
                drawnItemsList.Add(a);
                mousePressdDown = 0;
            }
    
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                foreach (DrawingData a in drawnItemsList)
                {
                    draw(e.Graphics, a);
                }
                draw(e.Graphics, mouseDownPosition, mouseMovePosition);
            }
    
            private void draw(Graphics e, DrawingData a)
            {
                Pen p = new Pen(Color.Black, 2);
    
                using (Font useFont = new Font("Gotham Medium", 28, FontStyle.Bold))
                {
                    RectangleF header2Rect = new RectangleF();
                    int moldX = a.old.X - 5;
                    int moldY = a.old.Y;
    
                    header2Rect.Location = new Point(moldX, moldY);
                    header2Rect.Size = new Size(600, ((int)e.MeasureString(header2, useFont, 600, StringFormat.GenericTypographic).Height));
                    e.DrawString(a.Rand, useFont, Brushes.Black, header2Rect);
                }
            }
        }
    }
    
    图形数据类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Drawing;
    
    namespace DrawingText
    {
        [Serializable]
        class DrawingData
        {
            private Point mold; // mouseDown position
            private Point mcur; // mouseUp poslition
    
            public DrawingData()
            {
                mold = new Point(0, 0);
                mcur = new Point(0, 0);
            }
            public DrawingData(Point old, Point cur)
            {
                mold = old;
                mcur = cur;
            }
    
            public Point old
            {
                get
                {
                    return mold;
                }
                set
                {
                    mold = value;
                }
            }
    
            public Point cur
            {
                get
                {
                    return mcur;
                }
                set
                {
                    mcur = value;
                }
            }
    
    
        }
    }
    
    namespace DrawingText
    {
        [Serializable]
        public class DrawingData
        {
            private Point mold; // mouseDown position
            private Point mcur; // mouseUp poslition
            private string randValue; // random data value
    
            public DrawingData()
            {
                mold = new Point(0, 0);
                mcur = new Point(0, 0);
                randValue = String.Empty;
            }
    
            public DrawingData(Point old, Point cur, string rand)
            {
                mold = old;
                mcur = cur;
                randValue = rand;
            }
    
            public Point old
            {
                get
                {
                    return mold;
                }
                set
                {
                    mold = value;
                }
            }
    
            public Point cur
            {
                get
                {
                    return mcur;
                }
                set
                {
                    mcur = value;
                }
            }
    
            public sting Rand
            {
                get
                {
                    return randValue;
                }
                set
                {
                    randValue = value;
                }
         }
    }
    

    发布此方法的其余代码。我还建议使用相同的
    Random
    对象生成随机数,因此移动行
    Random rnd=new Random()
    在click处理程序之外,并使对象
    rnd
    成为类范围。感谢大家的关注。有很长的代码,所以我刚刚创建了一个新的项目,上面的代码你们可以看到,现在我用鼠标点击表单创建随机数。但它仍然是同一个问题。代码更新:我已将Random移出了scoop,因此现在它不会生成相同的数字,但仍然会将旧的随机数更改为其他数字。发布此方法的其余代码。我还建议使用相同的Random对象生成随机数,因此,移动行
    Random rnd=new Random()
    在click处理程序之外,并使对象
    rnd
    成为类范围。感谢大家的关注。有很长的代码,所以我刚刚创建了一个新的项目,上面的代码你们可以看到,现在我用鼠标点击表单创建随机数。但它仍然是同一个问题。代码更新:我已经将随机数移到了独家新闻之外,所以现在它不会生成相同的数字,但仍然会将旧的随机数更改为其他数字。谢谢,将随机数移到独家新闻之外产生了差异,但这次数字不一样,但每次单击其他值时,它们都会更改。我有一个列表drawnItemsList,它存储了上面的绘画元素。谢谢你,将随机移动到勺子外会产生差异,但这次数字不一样,但每次单击都会更改为其他值。我有一个列表drawnItemsList,它存储了上面的绘画元素。谢谢你的努力,亲爱的,但是从绘画到图形的转换目前还不是一个选项,因为我在绘画课上还有很多其他的东西。上面的代码我只是从大量代码中提取逻辑。亲爱的,谢谢你的努力,但是从绘图到图形的转换目前还不是一个选项,因为我在绘图类中还有很多其他的东西。上面的代码是我从大量代码中提取出来的,以获得逻辑。先生,你太棒了:),在阅读完所有内容后,我假设我还需要2个重载的方法,即Form1中的Draw,所以我添加了,所有这些都正常工作。非常感谢…事实上我正在自学Csharp(来自PHP),我现在非常喜欢c#,每天都会有新的东西出现,像你这样的了不起的家伙来帮助我…如果我可以再问一个问题,在上面的示例中,我应该在绘制的文本上单击/选择什么逻辑/代码,并在表单中的任何位置拖动/移动?再次感谢你,你真是太棒了:),读完所有内容后,我想我还需要在Form1中使用2个重载的绘图方法,所以我添加了,而且一切都正常。非常感谢…事实上我正在自学Csharp(来自PHP),我现在非常喜欢c#,每天都会有新的东西出现,像你这样的了不起的家伙来帮助我…如果我可以再问一个问题,在上面的示例中,我应该在绘制的文本上单击/选择什么逻辑/代码,并在表单中的任何位置拖动/移动?再次感谢