Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
useruser
82 / 77 / 35
Регистрация: 29.06.2015
Сообщений: 801
1

Как сделать так чтобы Form2 появлялась ровно в том же месте где и Form1

21.12.2015, 08:26. Просмотров 963. Ответов 6
Метки нет (Все метки)

Эту тему читал Сделать так чтобы Form2 появлялась ровно в том же месте где и Form1
Но ответы не помогли. Форма остается на том же месте.
И что уже не пробовал.

C#
1
2
3
4
5
            RadForm2 RadForm2 = new RadForm2();
          //RadForm2.DesktopLocation = new Point(800, 100);
            RadForm2.Location = new Point(500, 300);
            //RadForm2.Location = this.Location;
            RadForm2.Show();
Подскажите, где ошибка?

Добавлено через 56 минут
PS
RadForm2 уже существует. Т.е. я разработал её в Конструкторе (визуальный редактор).
Не очень понимаю, зачем я её снова создаю - но везде пишут, что я обязан создать экземпляр этой формы, перед её вызовом.
Моя форма появляется, со всеми элементами на ней. Но не в том месте, где я хочу.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2015, 08:26
Ответы с готовыми решениями:

Сделать так чтобы Form2 появлялась ровно в том же месте где и Form1
{ Form2 form = new Form2(); form.Show(); } как сделать так чтобы Form2 появлялась...

Как сделать, чтобы при запуске появлялась Form2?
есть две формы Form1 и Form2. При запуске появляется Form1. Как сделать, чтобы при запуске...

Как сделать, чтобы Form2, открывалась в одном месте
Появился такой вопрос, я создал 2 формы, одна побольше, другая поменьше. На первой Form1, я добавил...

Объясните как сделать так что бы в Form2 можно было изменять свойства кнопок из Form1
Как сделать вот такую задачу: В Form1 есть Кнопка(btn1), и в Form2 есть кнопка(btn2). Нажимаем на...

Как сделать так, чтобы по клику на картинке в форме появлялась ещё одна.(реплики персонажа)
Как сделать так, чтобы по клику на картинке в форме появлялась ещё одна. Пользователь кликает на...

6
Даценд
Модератор
Эксперт .NET
5041 / 4299 / 2795
Регистрация: 20.04.2015
Сообщений: 7,757
21.12.2015, 09:09 2
Сначала показываем 2-ю фору, а затем ее позиционируем:
C#
1
2
3
RadForm2 radForm2 = new RadForm2();
radForm2.Show();
radForm2.Location = this.Location;
Цитата Сообщение от useruser Посмотреть сообщение
RadForm2 уже существует. Т.е. я разработал её в Конструкторе (визуальный редактор).
Не очень понимаю, зачем я её снова создаю - но везде пишут, что я обязан создать экземпляр этой формы, перед её вызовом.
Срочно в 1-й класс учить ООП.
0
useruser
82 / 77 / 35
Регистрация: 29.06.2015
Сообщений: 801
21.12.2015, 11:25  [ТС] 3
Даценд, ваш код работает но не так как мне надо. А так, как он вами написан.
Мне надо сначала позиционирование формы, потом показать. Так обычно делают.
У вас наоборот, что вызывает дерганье появляющейся формы. Это же не красиво, вы согласны? )

Не по теме:


Цитата Сообщение от Даценд Посмотреть сообщение
Срочно в 1-й класс учить ООП.
Это был намёк, что не во всех языках ООП требуется создавать объект, перед его использованием.
Для меня, как для новичка в С# это пока странно.
В делфи, например подключаем форму в uses и пишем Form2.Show; Всё.

0
nedel
670 / 640 / 377
Регистрация: 09.04.2014
Сообщений: 1,539
Завершенные тесты: 1
21.12.2015, 11:48 4
Лучший ответ Сообщение было отмечено useruser как решение

Решение

Цитата Сообщение от useruser Посмотреть сообщение
Подскажите, где ошибка?
C#
1
2
3
4
RadForm2 radForm2 = new RadForm2();
radForm2.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
radForm2.Location = new Point(500, 300);
radForm2.Show();
1
Даценд
Модератор
Эксперт .NET
5041 / 4299 / 2795
Регистрация: 20.04.2015
Сообщений: 7,757
21.12.2015, 12:05 5
Цитата Сообщение от useruser Посмотреть сообщение
Это же не красиво, вы согласны? )
Я дерганья не заметил.
Но можно и так:
C#
1
2
3
Form2 radForm2 = new Form2();
radForm2.Location = this.Location;
radForm2.Show();
Только для 2-й формы в конструкторе установите свойство StartPosition = Manual.

Цитата Сообщение от useruser Посмотреть сообщение
В делфи, например подключаем форму в uses и пишем Form2.Show; Всё.
Да, я вспомнил, что после дельфи тоже не сразу приспособился. Но это просто нюанс дельфи. Здесь в конструкторе описывается не экземпляр (объект), а класс. Соответственно, чтобы класс использовать нужно создавать объект с помощью new.
1
useruser
82 / 77 / 35
Регистрация: 29.06.2015
Сообщений: 801
21.12.2015, 13:15  [ТС] 6
Цитата Сообщение от Даценд Посмотреть сообщение
Я дерганья не заметил.
Будет. Исходя из алгоритма - сначала показали, потом переместили. И в Delphi тоже будет. И в Qt.
Просто если компьютер помощнее, то это не заметно.

Цитата Сообщение от Даценд Посмотреть сообщение
Только для 2-й формы в конструкторе установите свойство StartPosition = Manual.
Цитата Сообщение от nedel Посмотреть сообщение
radForm2.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
Вот это и было нужно. Спасибо.

И что VS C# к начальной стартовой позиции придирается? Вот ему не всё равно, мы же её сразу изменим...
0
Даценд
Модератор
Эксперт .NET
5041 / 4299 / 2795
Регистрация: 20.04.2015
Сообщений: 7,757
21.12.2015, 13:53 7
Цитата Сообщение от useruser Посмотреть сообщение
И что VS C# к начальной стартовой позиции придирается? Вот ему не всё равно, мы же её сразу изменим...
Ну по умолчанию свойство в WindowsDefaultLocation установлено, поэтому так и происходит.
А зачем вообще нужно привязываться к углу главной формы?
0
21.12.2015, 13:53
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2015, 13:53

Как сделать доступ к переменной из Form2 в Form1?
Например: В Form1 есть 2 кнопки ( Input и Change ); 1.Создаём Form2; При нажатии на Input...

Как по закрытии Form2 сделать определенное действие в Form1
Здравствуйте! Помогите пожалуйста, я новичок в ) Столкнулся с проблемой и не смог найти ответа на...

Как сделать так чтобы при нажатии на картинку на ее месте появлялась другая
Как сделать так чтобы при нажатии на картинку на ее месте появлялась другая через четыре секунды


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru