Задание позиции открываемой формы, относительно предыдущей - C#

Узнай цену своей работы

Формулировка задачи:

Суть: Есть Форма1, на ней расположено множество кнопок имеющих динамический размер и положение (изменяются в соотношениях изменения размера Формы1) Задача: Нажатием на кнопку из Формы1 должна открываться Форма2 в районе нажатой кнопки. Форма2 игнорирует задание позиций и появляется в рандомных местах, каждое последующие открытие формы ее немного сдвигает по диагонали (правее и ниже). Вызов Формы2 (Нажатием кнопки в Форме1) .
if (Info.Chekform2 == false)  { // form 2 is open
                Form2 f2 = new Form2();

                f2.Show();
                Info.Chekform2 = true;
            }
Инициализация Формы2.
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(347, 313);
            this.Controls.Add(this.button1);
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
            this.Location = new System.Drawing.Point(1, 1); // ИГНОРИРУЕ ДАННОЕ ЗНАЧЕНИЕ И ОТКРЫВАЕТСЯ В РАНДОМНЫХ МЕСТАХ
            this.Name = "Form2";
            this.Text = "Form2";
            this.Load += new System.EventHandler(this.Form2_Load);
            this.ResumeLayout(false);
Закрытие Формы2 кнопкой из Формы2
Info.Chekform2 = false;
            this.Close();
Решение: При необходимости задать положение Формы2 относительно положения предыдущей. Сохраняем необходимые координаты в глобальную переменную, после чего в Форме2 обработать событие:
 private void Form2_Load(object sender, EventArgs e)
        {
            this.Location = new Point(Y, X); // x и y - глобальные переменные
        }
Но мне все еще не ясно почему игнорируется эта строка в инициализации
this.Location = new System.Drawing.Point(1, 1);

Решение задачи: «Задание позиции открываемой формы, относительно предыдущей»

textual
Листинг программы
new Form2(Cursor.Position).Show();

Объяснение кода листинга программы

В данном коде создается новый экземпляр формы с названием Form2 и позиция этой формы устанавливается в текущую позицию курсора мыши. Затем форма отображается на экране.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы