Do Loop

I have the following code that runs through a Do Loop and draws a certain amount of rectangles based on how many are specified in the numericUpDown control (1 through 8).

I would like to space the yloc a specific distance (say 75) every 2 rectangles (see attached picture).

Any thoughts on the best way?



System.Drawing.Graphics graphicsObj;
                graphicsObj = this.CreateGraphics();

                Pen myPen = new Pen(System.Drawing.Color.Black, 1);

                int i = 1;
                int xLoc = 150;
                int yloc = 200;

                do
                {
                    Rectangle myRectangle = new Rectangle(xLoc, yloc, 50, 25);
                    graphicsObj.DrawRectangle(myPen, myRectangle);

                    i++;
                    //xLoc = xLoc + 50;
                    yloc = yloc + 25;

                } while (i <= numericUpDown.Value);

Open in new window

draw-box-1.jpg
JedidiaAsked:
Who is Participating?
 
AndyAinscowFreelance programmer / ConsultantCommented:
Something like this where you increment by a different quantity every second time through the loop ?
if (( i % 2 ))
  yloc = yloc + 25;
else
  yloc = yloc +75;

Open in new window

0
 
JedidiaAuthor Commented:
HI Andy,  Worked fine once I updated the below line with ==0.
if ((i % 2) ==0)

Thanks
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
ps.  This alternative should do what you wanted in that case (swapped the increments around)

if (( i % 2 ))
  yloc = yloc + 75;
else
  yloc = yloc +25;

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.