Задание позиции открываемой формы, относительно предыдущей - C#
Формулировка задачи:
Суть:
Есть Форма1, на ней расположено множество кнопок имеющих динамический размер и положение (изменяются в соотношениях изменения размера Формы1)
Задача:
Нажатием на кнопку из Формы1 должна открываться Форма2 в районе нажатой кнопки.
Форма2 игнорирует задание позиций и появляется в рандомных местах, каждое последующие открытие формы ее немного сдвигает по диагонали (правее и ниже).
Вызов Формы2 (Нажатием кнопки в Форме1) .
Инициализация Формы2.
Закрытие Формы2 кнопкой из Формы2
Но мне все еще не ясно почему игнорируется эта строка в инициализации
if (Info.Chekform2 == false) { // form 2 is open Form2 f2 = new Form2(); f2.Show(); Info.Chekform2 = true; }
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);
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 и позиция этой формы устанавливается в текущую позицию курсора мыши. Затем форма отображается на экране.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д