簡體   English   中英

矩形不使用數組繪制

[英]Rectangle not drawing using array

嗨,我是C#的新手,需要使用數組繪制矩形。 我的代碼是:

        Rectangle[] rec;
        int rec_part=2;

        public Form1()
        {
            InitializeComponent();
            rec = new Rectangle[rec_part];

            for (int i = 0; i <rec_part; i++)
            {
                rec[i] = new Rectangle(10, 100, 40,40);
            }
        }

所以我的代碼一次只繪制一個Rectangle:

        Graphics g;
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
             g = e.Graphics;

            for (int i = 0; i<(rec_part);  i++)
            {

                g.FillRectangle(new SolidBrush(Color.Blue), rec[i]);  //exception here

            }
        }

事情是我想移動我的Rectangle,同時我想增加Rectangle Array Length!

        int speed = 2;
        private void timer1_Tick(object sender, EventArgs e)
        {

            for (int i = 0; i < rec.Length; i++)
            {

                rec[i].X += speed;
                rec_part+=1;          // here i want to increment the rectangles
                this.Refresh();
            }


        }

我的目標是在計時器開始工作后增加矩形的數量。 但是我越來越界的索引異常! 有人可以給我任何想法或建議嗎? 提前致謝!

如果您只是更改代碼

if (rec_part == rec.Length)
    rec_part = 0;
else
    rec_part += 1; 

它會工作。 但是,您能詳細說明您想做什么嗎?

您不能將元素添加到數組。 使用清單:

private List<Rectangle> rectangleList = new List<Rectangle>();

然后,您可以根據需要添加任意多個矩形:

rectangleList.Add(new Rectangle(10, 100, 40,40));

在C#中,可以使用foreach循環代替for循環:

foreach(var r in rectangleList)
{
   g.FillRectangle(new SolidBrush(Color.Blue), r);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM