Руководство. Начало работы с конструктором Windows Forms

Конструктор Windows Forms предоставляет множество средств для создания приложений Windows Forms. В этой статье показано, как создать приложение с помощью различных средств, предоставляемых конструктором, включая следующие задачи:

  • Упорядочение элементов управления с помощью оснастки.
  • Выполнение задач конструктора с помощью смарт-тегов.
  • устанавливать поля и отбивки для элементов управления;
  • Упорядочение элементов управления с помощью TableLayoutPanel элемента управления.
  • разделять макет элемента управления с помощью элемента управления SplitContainer;
  • просматривать макет в окне "Структура документа";
  • размещать элементы управления с отображением размера и сведений о расположении;
  • Задайте значения свойств с помощью окно свойств.

По завершении вы получите пользовательский элемент управления, который был собран с помощью многих функций макета, доступных в конструкторе Windows Forms. Этот элемент управления реализует пользовательский интерфейс для простого калькулятора. На следующем изображении показан общий макет элемента управления калькулятора.

Screenshot of the completed user interface for the calculator control.

Совет

Если вы являетесь разработчиком C++ и ищете руководство по созданию приложения Windows, которое включает формы и элементы управления, см. статью Создание приложения MFC на основе форм. Дополнительные обобщенные сведения см. в разделе Обзор программирования Windows на C++.

Создание проекта пользовательского элемента управления

Первым шагом является создание проекта элемента управления DemoCalculator.

  1. Откройте Visual Studio и создайте проект библиотеки элементов управления Windows Forms с помощью шаблона платформа .NET Framework для C# или Visual Basic. Задайте проекту имя DemoCalculatorLib.

    Screenshot of the Windows Forms Control Library template in Visual Studio.

  2. Чтобы переименовать файл, в обозревателе решений щелкните правой кнопкой мыши элемент UserControl1.vb или UserControl1.cs, выберите Переименовать и замените имя файла на DemoCalculator.vb или DemoCalculator.cs. Выберите "Да ", когда вам будет предложено переименовать все ссылки на элемент кода UserControl1.

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

Разработка макета элемента управления

Элемент управления DemoCalculator содержит несколько элементов управления Windows Forms. В этой процедуре вы упорядочены элементы управления с помощью конструктора Windows Forms.

  1. В конструкторе Windows Forms увеличьте размер элемента управления DemoCalculator, выбрав маркер изменения размера в правом нижнем углу и перетащив его вниз и вправо. В правом нижнем углу Visual Studio просмотрите сведения о размере и расположении элементов управления. Задайте элементу управления ширину 500 и высоту 400, наблюдая за сведениями о размере при изменении размера элемента управления.

  2. На панели элементов выберите узел Контейнеры, чтобы открыть его. Выберите элемент управления SplitContainer и перетащите его на поверхность конструктора.

    Элемент SplitContainer появится на поверхности конструктора элемента управления DemoCalculator.

    Совет

    Размер элемента управления SplitContainer автоматически устанавливается в соответствии с размером элемента управления DemoCalculator. В окне Свойства проверьте свойства, заданные для элемента управления SplitContainer. Найдите свойство Dock. Ему задано значение DockStyle.Fill. Это означает, что размер элемента управления SplitContainer устанавливается в соответствии с границами элемента управления DemoCalculator. Измените размер элемента управления DemoCalculator, чтобы проверить это поведение.

  3. В окне Свойства замените значение свойства Dock на None.

    Элемент управления SplitContainer уменьшится до размера по умолчанию и больше не будет меняться при изменении размера элемента управления DemoCalculator.

  4. Выберите глиф смарт-тега (Smart Tag Glyph) в правом верхнем углу SplitContainer элемента управления. Выберите Закрепить в родительском контейнере, чтобы присвоить свойству Dock значение Fill.

    Элемент управления SplitContainer закрепится по границам элемента управления DemoCalculator.

    Примечание.

    Для некоторых элементов управления доступны смарт-теги, упрощающие проектирование. Дополнительные сведения см. в пошаговом руководстве. Выполнение распространенных задач с помощью смарт-тегов в элементах управления Windows Forms.

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

    SplitContainer разделяет элемент управления DemoCalculator на две панели с разделяющей их границей, которую можно перемещать. Панель слева содержит кнопки калькулятора и отображение, а на панели справа отображается запись арифметических операций, выполняемых пользователем.

  6. В окне Свойства замените значение свойства BorderStyle на Fixed3D.

  7. На панели элементов выберите узел Стандартные элементы управления, чтобы открыть его. Выберите элемент управления ListView и перетащите его на правую панель элемента управления SplitContainer.

  8. Выберите глиф смарт-тега элемента управления ListView. На панели смарт-тегов замените значение параметра View на Details.

  9. На панели смарт-тегов выберите Изменить столбцы.

    Откроется диалоговое окно Редактор коллекции ColumnHeader.

  10. В диалоговом окне Редактор коллекции ColumnHeader выберите Добавить, чтобы добавить столбец в элемент управления ListView. Измените значение свойства элемента управления Text на Журнал. Нажмите кнопку ОК, чтобы создать столбец.

  11. На панели смарт-тегов выберите Закрепить в родительском контейнере, а затем щелкните глиф смарт-тега, чтобы закрыть панель смарт-тегов.

  12. С панели элементов узла Контейнеры перетащите элемент управления TableLayoutPanel на левую панель элемента управления SplitContainer.

    Элемент управления TableLayoutPanel отобразится на поверхности конструктора с открытой панелью смарт-тегов. Элемент управления TableLayoutPanel упорядочивает свои дочерние элементы управления в сетке. Элемент TableLayoutPanel управления содержит отображение и кнопки элемента управления DemoCalculator. Дополнительные сведения см. в пошаговом руководстве. Упорядочение элементов управления с помощью TableLayoutPanel.

  13. На панели смарт-тегов выберите Правка строк и столбцов.

    Откроется диалоговое окно Стили столбцов и строк.

  14. Нажимайте кнопку Добавить, пока не добавятся пять столбцов. Выберите все пять столбцов, а затем в поле Тип размера выберите Процент. Параметру Процент задайте значение 20. Это действие задает каждому столбцу одинаковую ширину.

  15. В разделе Показать выберите Строки.

  16. Нажимайте кнопку Добавить, пока не добавятся пять строк. Выберите все пять строк, а затем в поле Тип размера выберите Процент. Параметру Процент задайте значение 20. Это действие задает каждой строке одинаковую высоту.

  17. Нажмите кнопку ОК, чтобы применить изменения, и щелкните глиф смарт-тега, чтобы закрыть панель смарт-тегов.

  18. В окне Свойства замените значение свойства Dock на Fill.

Заполнение элемента управления

Теперь, когда макет элемента управления настроен, можно добавить в элемент управления DemoCalculator кнопки и экран.

  1. На панели элементов выберите значок элемента управления TextBox.

    Элемент управления TextBox помещается в первую ячейку элемента управления TableLayoutPanel.

  2. В окне Свойства замените значение свойства ColumnSpan элемента управления TextBox на 5.

    Элемент управления TextBox переместится в центр своей строки.

  3. Замените значение свойства Anchor элемента управления TextBox на Left, Right.

    Элемент управления TextBox расширится по горизонтали, заняв все пять столбцов.

  4. Измените значение свойства TextBox элемента управления TextAlign на Right.

  5. В окне Свойства разверните узел свойства Font. Задайте значение 14 для Size и true для Bold у элемента управления TextBox.

  6. Выберите элемент управления TableLayoutPanel.

  7. На панели элементов выберите значок Button.

    Элемент управления Button разместится в следующей свободной ячейке элемента управления TableLayoutPanel.

  8. На панели элементов выберите Button еще четыре раза, чтобы заполнить вторую строку элемента управления TableLayoutPanel.

  9. Выберите все пять элементов управления Button, удерживая нажатой клавишу SHIFT. Нажмите клавиши CTRL+C, чтобы скопировать элементы управления Button в буфер обмена.

  10. Трижды нажмите сочетание клавиш CTRL+V, чтобы вставить скопированные элементы управления Button в оставшиеся строки элемента управления TableLayoutPanel.

  11. Выберите все 20 элементов управления Button, удерживая нажатой клавишу SHIFT.

  12. В окне Свойства замените значение свойства Dock на Fill.

    Все элементы управления Button закрепятся в своих ячейках.

  13. В окне Свойства разверните узел свойства Margin. Для All задайте значение 5.

    Всем элементам управления Button задается меньший размер, чтобы увеличить поля между ними.

  14. Выберите button10 и button20, после чего нажмите клавишу DELETE, чтобы удалить их из макета.

  15. Выберите button5 и button15, после чего замените значение их свойства RowSpan на 2. Эти кнопки представляют кнопки Clear и = button for the DemoCalculator control.

Использование окна структуры документа

Если в элементе управления или форме присутствует несколько элементов управления, перемещаться по макету удобнее с помощью окна "Структура документа".

  1. В строке меню выберите Вид>Другие окна>Структура документа.

    В этом окне структура элемента управления DemoCalculator и его составных элементов управления представлена в виде дерева. Дочерние элементы управления контейнерных элементов управления, таких как SplitContainer, отображаются в виде подузлов дерева. Вы также можете переименовать элементы управления с помощью окна "Структура документа".

  2. В окне Структура документа щелкните правой кнопкой мыши элемент button1, чтобы выбрать его, после чего щелкните Переименовать. Замените его имя на sevenButton.

  3. В окне Структура документа замените имена элементов управления Button, заданные конструктором, на имена для рабочей среды согласно следующему списку:

    • button1 на sevenButton;

    • button2 на eightButton;

    • button3 на nineButton;

    • button4 на divisionButton;

    • button5 на clearButton;

    • button6 на fourButton;

    • button7 на fiveButton;

    • button8 на sixButton;

    • button9 на multiplicationButton;

    • button11 на oneButton;

    • button12 на twoButton;

    • button13 на threeButton;

    • button14 на subtractionButton;

    • button15 на equalsButton;

    • button16 на zeroButton;

    • button17 на changeSignButton;

    • button18 на decimalButton;

    • button19 на additionButton;

  4. С помощью окон Структура документа и Свойства измените значения свойства Text для каждого имени элемента управления Button согласно следующему списку:

    • для элемента управления sevenButton замените свойство текста на 7;

    • для элемента управления eightButton замените свойство текста на 8;

    • для элемента управления nineButton замените свойство текста на 9;

    • для элемента управления divisionButton замените свойство текста на / (косая черта);

    • для элемента управления clearButton замените свойство текста на Clear;

    • для элемента управления fourButton замените свойство текста на 4;

    • для элемента управления fiveButton замените свойство текста на 5;

    • для элемента управления sixButton замените свойство текста на 6;

    • для элемента управления multiplicationButton замените свойство текста на * (звездочка);

    • для элемента управления oneButton замените свойство текста на 1;

    • для элемента управления twoButton замените свойство текста на 2;

    • для элемента управления threeButton замените свойство текста на 3;

    • для элемента управления subtractionButton замените свойство текста на - (дефис);

    • для элемента управления equalsButton замените свойство текста на = (знак равенства);

    • для элемента управления zeroButton замените свойство текста на 0;

    • для элемента управления changeSignButton замените свойство текста на +/-;

    • для элемента управления decimalButton замените свойство текста на . (точка);

    • для элемента управления additionButton замените свойство текста на + (знак "плюс");

  5. На поверхности конструктора выберите все элементы управления Button, удерживая нажатой клавишу SHIFT.

  6. В окне Свойства разверните узел свойства Font. Задайте значение 14 для Size и true для Bold у всех элементов управления Button.

Этот набор инструкций завершает проектирование элемента управления DemoCalculator. Остается только добавить логику калькулятора.

Добавление обработчиков событий

Кнопки в элементе управления DemoCalculator имеют обработчики событий, которые можно использовать для реализации большей части логики калькулятора. Конструктор Windows Forms позволяет реализовать заглушки всех обработчиков событий для всех кнопок одним выбором.

  1. На поверхности конструктора выберите все элементы управления Button, удерживая нажатой клавишу SHIFT.

  2. Выберите один из элементов управления Button.

    В редакторе кода откроются обработчики событий, созданные конструктором.

Тестирование элемента управления

Поскольку элемент управления DemoCalculator наследуется от класса UserControl, его поведение можно проверить с помощью Контейнера для тестирования пользовательских элементов управления. Дополнительные сведения см. в статье "Практическое руководство. Тестирование поведения во время выполнения userControl".

  1. Нажмите клавишу F5, чтобы собрать и запустить элемент управления DemoCalculator в Контейнере для тестирования пользовательских элементов управления.

  2. Выберите границу между панелями SplitContainer и перетащите ее влево и вправо. Размеры элемента TableLayoutPanel и всех его дочерних элементов управления будут изменяться в соответствии с доступным пространством.

  3. После завершения тестирования элемента управления нажмите кнопку "Закрыть".

Использование элемента управления в форме

Элемент управления DemoCalculator можно использовать в других составных элементах управления или в форме. Ниже описано, как это сделать.

Создание проекта

Первым шагом является создание проекта приложения. В этом проекте выполняется сборка приложения, демонстрирующего работу пользовательского элемента управления.

  1. Создайте проект Приложение Windows Forms с именем DemoCalculatorTest.

  2. В Обозревателе решений щелкните правой кнопкой мыши проект DemoCalculatorTest и выберите Добавить>Ссылка на проект, чтобы открыть диалоговое окно Диспетчер ссылок.

  3. Перейдите на вкладку Проекты и выберите проект DemoCalculatorLib, чтобы добавить ссылку на тестовый проект.

  4. В обозревателе решений щелкните правой кнопкой мыши DemoCalculatorTest и выберите пункт Назначить запускаемым проектом.

  5. В конструкторе Windows Forms увеличьте размер формы примерно до 700 x 500.

Использование элемента управления в макете формы

Чтобы использовать элемент управления DemoCalculator в приложении, его необходимо поместить в форму.

  1. На панели элементов разверните узел Компоненты DemoCalculatorLib.

  2. Перетащите элемент управления DemoCalculator с панели элементов в форму. Переместите элемент управления в левый верхний угол формы. Когда элемент управления близок к границам формы, отрезки отображаются. Линии привязки указывают расстояние свойства Padding формы и свойства Margin элемента управления. Поместите элемент управления в расположение, указанное линиями привязки.

    Дополнительные сведения см. в пошаговом руководстве. Упорядочение элементов управления с помощью линий оснастки.

  3. Перетащите элемент управления Button с панели элементов и поместите его в форму.

  4. Перемещайте элемент управления Button по элементу управления DemoCalculator, чтобы определить, где отображаются линии привязки. Вы можете точно и легко выровнять элементы управления с помощью этой функции. По завершении удалите элемент управления Button.

  5. Щелкните правой кнопкой мыши элемент управления DemoCalculator и выберите пункт Свойства.

  6. Замените значение свойства Dock на Fill.

  7. Выберите форму, а затем разверните узел свойства Padding. Замените значение Все на 20.

    Размер элемента управления DemoCalculator уменьшится в соответствии с новым значением формы Padding.

  8. Измените размер формы, перетаскивая различные маркеры изменения размера в разные положения. Обратите внимание на то, как размер элемента управления DemoCalculator пропорционально изменяется.

Следующие шаги

В этой статье было показано, как создать пользовательский интерфейс для простого калькулятора. Чтобы продолжить, вы можете расширить свою функциональность, реализуя логику калькулятора, а затем опубликовать приложение с помощью ClickOnce. Кроме того, перейдите к другому руководству, в котором вы создаете средство просмотра рисунков с помощью Windows Forms.

См. также