Member 13594414 Ответов: 1

По Создание формы в Visual С#


эй,

Я создаю настольное приложение на visual c#, и это приложение-система контроля блистеров. Я хочу сделать рисунки в соответствии с блистером на picturebox. для этого я должен нарисовать несколько прямоугольников на основе пользовательского ввода , пользовательский ввод-это такое количество строк и столбцов,если предположить, что пользователь вводит 2 и 3, так что прямоугольники должны быть нарисованы как 2*3.и я также хочу поддерживать связь между каждым из нарисованных прямоугольников.Может ли кто - нибудь помочь мне в этом вопросе?

Спасибо

Что я уже пробовал:

public List<rectangle> listRec = new List<rectangle>();
        Graphics g;

  
        private void button1_Click(object sender, EventArgs e)
        {
            Rectangle rect = new Rectangle();
            rect.Size = new Size(80, 60);
            for (int x = 0; x < 2; x++)
            {
                rect.X = x * rect.Width;
                for (int y = 0; y <3 ; y++)
                {
                    rect.Y = y * rect.Height;
                    listRec.Add(rect);
                }
            }

            foreach (Rectangle rec in listRec)
            {
                g = pictureBox1.CreateGraphics();
                Pen p = new Pen(Color.Blue);
                g.DrawRectangle(p, rec);
            }



я пробовал приведенный выше код ,но он не соответствует моему требованию,прямоугольники рисуются без интервалов между ними,они рисуются как таблица или сетка.

1 Ответов

Рейтинг:
7

OriginalGriff

Если вам нужно пространство между ними, вы должны добавить его:

rect.X = x * (rect.Width + amountIWantBetweenThemHoriziontally);
...
rect.Y = y * (rect.Height + amountIWantBetweenThemVertically);


Member 13594414

Большое вам спасибо ,ваше решение работает очень хорошо,но я хочу нарисовать свои прямоугольники из указанного местоположения,тогда как оно начинается с (0,0) местоположения, как я могу указать это местоположение?
Спасибо

OriginalGriff

Да ладно тебе - ты ведь шутишь, правда?
Вы не знаете, как добавить смещение?

прямоугольник.Х = х * (Ан.Ширина + amountIWantBetweenThemHoriziontally) + xOffset;
...
прямоугольник.Y = y * (прямая линия.Высота + amountIWantBetweenThemVertically) + yOffset;