Skip to content

Як зробити перехід на іншу форму [C#]

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Завантаження...

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

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


У цій статті ми розглянемо як здійснити перехід на іншу форму в таких додатках, як Windows Forms і Windows Presentation Foundation.

Щоб перейти до іншої форми в C# Windows Forms, виконайте такі дії:

  1. Створіть нову форму, на яку ви хочете перейти.
  2. У поточній формі створіть екземпляр нової форми.
  3. Викличте метод Show() для екземпляра нової форми, щоб відобразити її.
  4. За бажанням ви можете приховати поточну форму, викликавши метод Hide().

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

Так само у вас може виникнути питання, як потім відобразити початкову форму, після закриття другої. Перший варіант полягає в передачі об’єкта основної форми через конструктор другої, відповідно під час закриття другої форми можна звернутися до об’єкта першої і викликати метод 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#?
Subscribe
Notify of
guest
0 комментариев
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x