Как создать класс, связанный с формой окна в C #? - PullRequest
2 голосов
/ 18 апреля 2010

Теперь, когда разработка C ++ стала для меня второй натурой, нужно ли начинать с нуля с C #?

С момента появления Visual Studio появился простой способ описать форму диалога (теперь называется формой) в файле ресурсов, а затем с помощью мастера создайте соответствующий код C ++.Я помню, что в MFC было довольно просто создать собственный диалог со всеми необходимыми компонентами, а затем со всем связанным кодом.

Если у меня есть приложение на C #, которое имеет много форм, которыеЯ хочу вывести на экран в зависимости от выбора меню пользователя, как мне создать класс, связанный с формой Windows?

Ответы [ 2 ]

3 голосов
/ 18 апреля 2010

Если вы используете конструктор, он генерирует класс C # для вас; так что если у вас есть форма с именем UserOptionsForm, вам просто нужно сделать что-то вроде:

new UserOptionsForm().Show();

или для модального всплывающего окна:

using(UserOptionsForm form = new UserOptionsForm()) {
    form.ShowDialog(); // returns result code (OK/cancel/etc)
}
0 голосов
/ 18 апреля 2010

В .Net (C #, VB.Net или на любом другом языке .Net, который вы используете) формы - это классы, вовсе не обязательно включающие файлы ресурсов. Создать форму так же просто, как наследовать класс Form:

public class MyWindow : Form
{
}

Теперь вы можете вывести его на экран:

using (var myWindow = new MyWindow())
{
    myWindow.Show();
}

Окно будет совершенно пустым, пока вы не добавите в него некоторые элементы управления:

public class MyWindow : Form
{
    public MyWindow()
    {
         var button = new Button();
         button.Text = "Click me";
         Controls.Add(button);
    }
}

Как видите, в WinForms формы и элементы управления создаются с использованием кода. Теперь ручное кодирование таких форм утомительно, так что используйте WinForms Designer в Visual Studio. Он сгенерирует код для вас.

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