c#Drawing繪制矩形方塊


 

 

因為考慮到用戶體驗,需要把過程用一個直觀的方式體現出來

有時候產品在生產過程中,是看不到具體的數據交互過程。

比如說一個產品生產結束了,到下一個產品時,要怎樣給用戶展示這一個過程呢?

想了很久決定用矩形方塊顯示出來。

一個產品用一個矩形方塊表示,產品結束時把方塊改變顏色,紅黃藍綠都行

我的方案是未生產時,方塊都是黃色,逐步生產過程時,方塊顏色逐步變綠,有NG產品時變紅色…………

 

上面所述大多是應用到項目部分中,具體過程可根據需求改動

 

下面說說繪制矩形方塊,我在計算和摸索中總結了兩個繪制方塊的方式

1.可根據行(x)和列(y)參數,生成幾行幾列的矩形方塊

 

 

2.可根據方塊總數(z),和一行幾列(y)參數,逐一排列生成方塊

 

 

 

 

 

 

 

 

按照方塊的長寬,對數量是有限制的,數量少長寬小,計算機執行快,cpu占用也小

數量多長寬大,計算機執行速度很慢,cpu占用很高。。(配置低的電腦不要輕易嘗試繪制1000個以上方塊。。)

如果你的方塊像星星一樣大小,可以密密麻麻規律的擺放在窗體控件內(密集症者不要輕易嘗試)

源碼:

1.根據行和列生成長寬自適應的方塊

public void DrawRectangle1(Panel pan, int x, int y)
        {
            int Page_Width = pan.Width;
            int Page_Height = pan.Height;
            int Single_Width = Page_Width / (2 * x + 1);
            int Single_Height = Page_Height / (2 * y + 1);
            Size size = new Size(Single_Width, Single_Height);


            for (int i = 0; i < x * y; i++)
            {
                int xNum = (i + 1) % x;  // 第幾列
                int yNum = i / x + 1; //第幾行
                if (xNum == 0)
                {
                    xNum = x;
                }
                Point point = new Point(((xNum * 2) - 1) * Single_Width, ((yNum * 2) - 1) * Single_Height);
                Label lable = new Label();
                lable.Location = point;
                lable.Size = size;

                lable.Tag = lable.Size.Width.ToString() + ',' + lable.Size.Height.ToString();
                lable.BackColor = Color.Yellow;
                lable.Name = "lable" + i.ToString();
                lable.Visible = true;
                pan.Controls.Add(lable);
            }
        }
View Code

 

 

2.根據總數和列數生成長度大小一樣的方塊

 1  public void DrawRectangle(Panel page, int x, int y)
 2         {
 3             int Page_Width = page.Width;
 4             int Page_Height = page.Height;
 5             int Single_Width = Page_Width / (2 * x + 1);
 6 
 7             int Single_Height = Page_Height / (2 * 4 + 1);
 8             Size size = new Size(Convert.ToInt32(35), Convert.ToInt32(35));
 9             int a = 0;
10             for (int i = 0; i < x; i++)
11             {
12                 if (i % y == 0 && i != 0)
13                 {
14                     a++;
15                 }
16                 int Xnum = (i + 1) % x;
17                 int Ynum = i / x + 1;
18                 if (Xnum == 0)
19                 {
20                     Xnum = x;
21                 }
22                 Label lable = new Label();
23                 lable.Location = new Point(20 + i % y * 70, 20 + a * 70);
24                 lable.Size = size;
25                 lable.Tag = lable.Size.Width.ToString() + ',' + lable.Size.Height.ToString();
26                 lable.BackColor = Color.Yellow;
27                 lable.Name = "lable" + i.ToString();
28                 lable.Visible = true;
29                 page.Controls.Add(lable);
30             }
31         }
View Code

 

記得引用Drawing

 

分享鏈接:https://pan.baidu.com/s/17LonA98_Mc7KuttDhxFlJg

 

推薦一個七夕福利——女朋友3D魔方相冊鏈接

https://www.cnblogs.com/wl192/p/11511200.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM