8 / 6 / 8
Регистрация: 04.01.2018
Сообщений: 113
1

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

04.01.2018, 11:09. Показов 2532. Ответов 2
Метки нет (Все метки)

Суть:
Есть Форма1, на ней расположено множество кнопок имеющих динамический размер и положение (изменяются в соотношениях изменения размера Формы1)

Задача:
Нажатием на кнопку из Формы1 должна открываться Форма2 в районе нажатой кнопки.

Форма2 игнорирует задание позиций и появляется в рандомных местах, каждое последующие открытие формы ее немного сдвигает по диагонали (правее и ниже).

Вызов Формы2 (Нажатием кнопки в Форме1) .
C#
1
2
3
4
5
6
7
if (Info.Chekform2 == false)  { // form 2 is open
                Form2 f2 = new Form2();
                
 
                f2.Show();
                Info.Chekform2 = true;
            }
Инициализация Формы2.
C#
1
2
3
4
5
6
7
8
9
10
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
C#
1
2
Info.Chekform2 = false;
            this.Close();
Добавлено через 1 час 4 минуты
Решение:

При необходимости задать положение Формы2 относительно положения предыдущей.

Сохраняем необходимые координаты в глобальную переменную, после чего в Форме2 обработать событие:
C#
1
2
3
4
 private void Form2_Load(object sender, EventArgs e)
        {
            this.Location = new Point(Y, X); // x и y - глобальные переменные
        }
Но мне все еще не ясно почему игнорируется эта строка в инициализации
C#
1
this.Location = new System.Drawing.Point(1, 1);
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2018, 11:09
Ответы с готовыми решениями:

Заполнять поле открываемой формы
Сделал кнопку на открытие формы на создании записи. При этом мне необходимо, чтобы одно из полей...

Обратиться к элементу открываемой формы
Есть две формы: "Добавление товара" "Добавление характеристик" На форме "Добавление товара" есть...

Как принять параметр открываемой формы ?
Из документа открываю внешнюю обработку и передаю в нее параметра для последующего отбора. Надеюсь...

При движении квадрата стирать его из предыдущей позиции
Здравствуйте,нужно поправить код, что бы после движения прошлый квадрат стирался. То есть что бы...

2
Эксперт .NET
5456 / 4229 / 1208
Регистрация: 12.10.2013
Сообщений: 12,223
Записей в блоге: 2
04.01.2018, 11:23 2
Цитата Сообщение от Kodzy Посмотреть сообщение
не ясно почему игнорируется эта строка в инициализации
Установите вот это свойство второй формы в FormStartPosition.Manual
1
8923 / 4835 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
04.01.2018, 11:35 3
Цитата Сообщение от Kodzy Посмотреть сообщение
Сохраняем необходимые координаты в глобальную переменную, после чего в Форме2 обработать событие:
Можно сделать перегрузку конструктора и передавать через него необходимые координаты
C#
1
2
3
4
5
6
7
8
9
10
11
public Form2()
{
    InitializeComponent();
    StartPosition = FormStartPosition.Manual;
}
 
public Form2(Point newLocation)
    :this()
{
    Location = newLocation;
}
И вызывать:
C#
1
new Form2(Cursor.Position).Show();
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2018, 11:35
Помогаю со студенческими работами здесь

Кватернион: расчет новой координаты точки при повороте ее СКО относительно предыдущей системы координат
Добрый день! Столкнулся с проблемой понимания применения алгебры кватернионов для решения одной...

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

Определение позиции курсора относительно элемента
Подскажите пожалуйста, допустим есть выпадающий список ul li, открывающийся при наведении курсора...

Угол одной позиции относительно другой
Всем доброго дня. Ни как не могу сообразить: даны два Vector2, нужно найти угол первой позиции (в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru