Windows формирует, как управлять различными экранами - PullRequest
0 голосов
/ 16 марта 2012

У меня есть программа с asp.net c #, но теперь мне нужно создать приложение в формах Windows, я попытался просмотреть некоторые учебники, но все они показывают только одну форму.Как эта концепция реализована в формах Windows?

В asp.net вы создаете страницу и заполняете ее элементами управления, такими как текстовые поля, выпадающие списки и т. Д. И, возможно, кнопкой «Вперед», тогда выиметь другую страницу с другими элементами управления и со своей собственной функциональностью тоже.Поэтому, когда вы нажимаете «Далее», вы делаете что-то вроде Response.Redirect("SomePage.aspx");, например ..

Как это делается в формах Windows? Могу ли я иметь несколько форм и переходить от одной к другой?и если да, то как вы сохраняете данные при переходе от одного к другому?.

Пожалуйста, извините, если вопрос слишком простой, но я новичок в окнах форм.

С уважением

Ответы [ 2 ]

1 голос
/ 16 марта 2012

Вы также можете сделать UserControls и заполнить их своими элементами управления.Затем вы можете добавить или удалить их из вашей формы или контейнера.Вот как я переключаю Edit Pages в моем приложении.

Простой пример, использующий 2 UserControls и Panel в качестве контейнера:

public partial class Form1 : Form
{
    UserControl1 usr1 = new UserControl1();
    UserControl2 usr2 = new UserControl2();

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        panel1.Controls.Clear();
        panel1.Controls.Add(usr1 );
    }

    private void button2_Click(object sender, EventArgs e)
    {
        panel1.Controls.Clear();
        panel1.Controls.Add(usr2 );
    }
}
1 голос
/ 16 марта 2012

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

Parent
|
|-->Child
  |
  |->GrandChild
|
|->Child2

Итак, родитель создаст новую форму и отобразит ее, используя Show или ShowModal, где Modal означает, что ничто другое в приложении не может иметь фокус, пока эта форма отображается. И родительский элемент является корнем всего этого, поэтому приложение остается открытым до тех пор, пока родительская форма не будет закрыта.

Вторая возможность

Вы можете создавать различные элементы управления, которые вы меняете в панели главной формы. Это, вероятно, ближе к тому, что вы ожидаете в Интернете. Итак, вы начинаете с экрана по умолчанию или с пустого экрана. Если это экран по умолчанию, то это просто элемент управления, расположенный на панели главной формы. Когда кнопка нажата, вы либо удаляете старый элемент управления и создаете новый, чтобы поместить его на место, либо создаете новый элемент управления и помещаете его поверх старого элемента управления, чтобы старый элемент управления «исчез» (до тех пор, пока Вы "закрываете" / уничтожаете этот контроль).

Пожалуйста, дайте мне знать, если это не имеет смысла, и я постараюсь объяснить концепцию немного более подробно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...