Из каких файлов должен состоять чистый проект WinForms?

На днях перешел к освоению оконных интерфейсов в C#, на примере WinForms.

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

Раз дизайнер форм не следует использовать, значит в проекте он не нужен. Отсюда появился вопрос - а из каких файлов вообще должен состоять "чистый" проект на WinForms? По сравнению с консольными приложениями, которые я пилил раньше, в нем достаточно много незнакомых файлов. Есть ли смысл вообще создавать проект WinForms, или лучше создавать проект консольного приложения и просто подключать к нему библиотеки Windows.Forms и System.Drowing?


Ответы (1 шт):

Автор решения: rotabor

Вот вам минимальное приложение Windows Forms

using System;
using System.Drawing;
using System.Windows.Forms;
namespace ProjectTestMyLabel1 {
    static class Program {
        [STAThread]
        static void Main() {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form2 frmMain = new Form2();
            Application.Run(frmMain);
        }
    }
    class Form2: Form {
        public Form2() {
            SuspendLayout();
            AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
            AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            ClientSize = new System.Drawing.Size(275, 83);
            Controls.Add(new Label() {
                Dock = System.Windows.Forms.DockStyle.Fill,
                Location = new System.Drawing.Point(0, 0),
                Name = "Label1",
                Size = new System.Drawing.Size(275, 83),
                Text = "The Label",
                TextAlign = System.Drawing.ContentAlignment.MiddleCenter
            });
            Text = Name = "Form2";
            StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            ResumeLayout(false);
        }
    }
}

Файл *.Designer.cs - это просто код формы, который выполняется для её создания. Дизайнер форм Visual Studio использует этот файл для отображения формы в режиме редактирования (поэтому этот файл менять в ручную без знания особеннойстей не рекомендуется - как минимум, дизайнер не будет работать).

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

    class Form2 : Form {
        public Form2() {
            SuspendLayout();
            AutoScaleDimensions = new SizeF(8F, 16F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(275, 123);
            Controls.AddRange((new int[] { 12, 42, 72 }).Select(s => new Label() {
                Location = new Point(12, s),
                Name = "Label" + s,
                Size = new Size(100, 23),
                Text = "The Label " + s,
                TextAlign = ContentAlignment.MiddleCenter
            }).ToArray());
            Text = Name = "Form2";
            StartPosition = FormStartPosition.CenterScreen;
            ResumeLayout(false);
        }
    }

введите сюда описание изображения

→ Ссылка