Skip to content

Как сделать переход на другую форму [C#]

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 3,67 из 5)
Загрузка...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


В этой статье мы рассмотрим как осуществить переход на другую форму в таких приложениях как Windows Forms и Windows Presentation Foundation.

Windows Forms

Чтобы перейти к другой форме в C# Windows Forms, выполните следующие действия:

  • Создайте новую форму, на которую вы хотите перейти.
  • В текущей форме создайте экземпляр новой формы.
  • Вызовите метод Show() для экземпляра новой формы, чтобы отобразить ее.
  • По желанию вы можете скрыть текущую форму, вызвав метод Hide().

Ниже приведен пример кода, демонстрирующий этот процесс:

По завершению работы с другой формой, вы можете ее закрыть с помощью метода Close():

Так же у вас может возникнуть вопрос, как потом отобразить изначальную форму, после закрытия второй. Первый вариант, заключается в передаче объекта основной формы через конструктор второй, соответственно при закрытии второй формы, можно обратиться к объекту первой и вызывать метод Show(). Рассмотрим пример:

Form1.cs:

Form2.cs:

При нажатии на кнопку CloseBtn, текущая форма будет закрыта, а вызывающая открыта.

Второй вариант, заключается в использовании коллекции открытых форм приложения:

Учитываем координаты форм при открытии

Представьте ситуацию. Открыта Form1 вы ее перемещаете в правый верхний угол экрана. Потом нажимаете на кнопку и… Form2 открывается по центру экрана или в другом месте, но не в том месте, где была Form1. Многие улыбнуться и скажут, что в свойствах Form2 надо прописать/указать следующее «StartPosition -> CenterParent» и открывать Form2. 

Это правильное решение, которое всегда будет открывать Form2 поверх Form1 и всегда по центру Form1. Однако этот код не применим, если вам надо скрывать Form1, так как Form1 не будет скрываться. 

Сейчас приведу полное решение, которое позволит открывать Form1 и Form2 в той же точке, где находилась до этого форма, вызывающая другую форму. Код включает всё вышеописанное. В свойствах форм надо прописать следующее (прямо в студии выбираете эти значения):

  • свойство Form1: «StartPosition -> CenterScreen»
  • свойство Form2: «StartPosition -> Manual»

координаты формы windows forms

Form1.cs:

Form2.cs:

В Form2, так же можно дописать еще одну строку, на случай если пример не работает:

 

WPF

В WPF можно перейти к другой форме с помощью элемента Frame и его метода Navigate. Вот пример того, как это сделать:

  1. Создайте новое окно WPF (Window2 в данном примере), в которое вы хотите перейти.
  2. В первом окне добавьте элемент Frame в код XAML, где вы хотите отобразить новое окно.
  3. В code-behind первого окна создайте обработчик события для щелчка по кнопке или любого другого события, которое вызовет навигацию.
  4. В обработчике событий вызовите метод Navigate элемента Frame и передайте Uri нового окна, к которому вы хотите перейти.

Другим способом перехода к другой форме является показ нового окна. Для этого можно создать новый экземпляр окна, которое вы хотите показать, и вызвать его метод Show. Вот пример:

Если у вас есть элемент управления-контейнер, например ContentControl или Frame, вы можете изменить его содержимое, чтобы показать новую страницу или элемент управления пользователя. Для этого вы можете установить свойство Content элемента управления контейнером на новый экземпляр страницы или элемента управления пользователя, который вы хотите показать.

Вот пример:

Это лишь несколько способов сделать переход к другой форме в WPF C#. Лучший подход зависит от конкретных требований вашего приложения.

Я надеюсь, что вам понравилось читать эту статью, и она оказалась легкой для понимания. Пожалуйста, дайте мне знать, если у вас есть какие-либо комментарии или исправления.

Так же вам может быть интересна предыдущая статья — Как сделать get запрос.


Вы хотите научится писать код на языке программирования C#?

Создавать различные информационные системы, состоящие из сайтов, мобильных клиентов, десктопных приложений, телеграмм-ботов и т.д.

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

  • Доступ к пройденному материалу
  • Тематические статьи
  • Библиотека книг
  • Онлайн тестирование
  • Общение в закрытых группах

https://dijix.com.ua

Живи в своем мире, программируй в нашем.


 

 

Published inКак сделать на C#?
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x