Как сделать форму в форме c

Добавил пользователь Morpheus
Обновлено: 28.08.2024

Далее окно Свойства используется для изменения внешнего вида формы.

Настройка свойств формы

Убедитесь, что отображается конструктор Windows Forms. В интегрированной среде разработки Visual Studio откройте вкладку Form1.cs [Design] (или вкладку Form1.vb [Design] в Visual Basic).

Чтобы выделить форму Form1, щелкните в любом ее месте. Посмотрите на окно Свойства. Теперь оно должно отображать свойства формы. У формы есть различные свойства. Например, можно установить цвет переднего плана и фона, текст заголовка, который отображается в верхней части формы, размер формы и другие свойства.

Если окно Свойства не открывается, остановите приложение, нажав квадратную кнопку Остановить отладку на панели инструментов, или просто закройте окно. Если приложение остановлено, но окно Свойства все равно не отображается, в строке меню выберите Вид > Окно свойств.

Когда форма будет выбрана, найдите свойство Text в окне Свойства. В зависимости от того, как отсортирован список, может потребоваться прокрутить вниз. Выберите Text, введите Программа просмотра изображений, а затем нажмите клавишу ВВОД. Теперь форма должна содержать текст Программа просмотра изображений в заголовке окна. Окно Свойства должно выглядеть так, как показано на снимке экрана ниже.

Окно


Окно _ _"Свойства"

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

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

Маркер перетаскивания


Маркер перетаскивания

Перетащите маркер, чтобы изменить размер формы — она должна стать шире и немного выше.

Посмотрите в окно Свойства и обратите внимание, что изменилось значение свойства Size. Свойство Size меняется при каждом изменении формы. Перетащите маркер, чтобы форма имела размер около 550, 350 (не обязательно точно такие значения). Такой размер вполне подходит для этого проекта. В качестве альтернативы можно вводить значения непосредственно в свойстве Size и затем нажимать клавишу ВВОД.

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

Нажмите клавишу F5.

В строке меню выберите Отладка > Начать отладку.

На панели инструментов нажмите кнопку Начать отладку, которая показана на рисунке ниже.

Кнопка "Начать отладку" _ _на панели инструментов

Как и ранее, интегрированная среда разработки выполняет сборку приложения и запускает его, после чего открывается окно.

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

На панели инструментов нажмите кнопку Остановить отладку.

В строке меню выберите Отладка > Остановить отладку.

На клавиатуре нажмите клавиши SHIFT+F5.

При создании формы размер и расположение изначально задаются как значения по умолчанию. Размер формы по умолчанию обычно имеет ширину и высоту 800 x 500 пикселей. Начальное расположение, отображаемое при отображении формы, зависит от нескольких различных параметров.

Изменить размер формы можно во время разработки с помощью Visual Studio, а также во время выполнения с помощью кода.

Изменение размера с помощью конструктора

После добавления новой формы в проект размер формы задается двумя разными способами. Во-первых, для него можно задать маркеры изменения размера в конструкторе. Перетаскивая правый край, нижний край или угол, можно изменить размер формы.

Щелкните правой кнопкой мыши Обозреватель решений, чтобы добавить в проект Windows Forms новую форму с маркерами изменения размера

Второй способ изменения размера формы — в конструкторе на панели "Свойства". Выберите форму, а затем найдите панель Свойства в Visual Studio. Прокрутите вниз до раздела Размер и разверните его. Можно вручную задать параметры Ширина и Высота.

Щелкните правой кнопкой мыши Обозреватель решений, чтобы добавить новую форму в проект Windows Forms

Изменение размера в коде

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

Чтобы изменить размер формы, измените свойство Size, которое представляет ширину и высоту формы.

Изменение размера текущей формы

Размер текущей формы можно изменить, пока код выполняется в контексте формы. Например, если имеется Form1 с кнопкой, то при нажатии на нее вызывается обработчик событий Click для изменения размера формы:

Изменение размера другой формы

Размер другой формы можно изменить после ее создания с помощью переменной, ссылающейся на форму. Например, предположим, что у вас есть две формы: Form1 (начальная форма в этом примере) и Form2 . В Form1 имеется кнопка, которая при нажатии вызывает событие Click . Обработчик этого события создает новый экземпляр формы Form2 , задает размер, а затем отображает его:

Если свойство Size не задано вручную, размер формы по умолчанию — это размер, заданный во время разработки.

Расположение с помощью конструктора

При создании и отображении экземпляра формы начальное расположение формы определяется свойством StartPosition. Свойство Location содержит текущее положение в форме. Оба свойства можно задать с помощью конструктора.

Панель свойств Visual Studio с выделенным начальным положением

Перечисление FormStartPosition Описание
CenterParent Форма располагается в центре родительской формы.
CenterScreen Форма располагается по центру текущего экрана.
Вручную Положение формы определяется свойством Расположение.
WindowsDefaultBounds Форма размещается в расположении Windows по умолчанию и ее размер подгоняется под размер по умолчанию, который определен Windows.
WindowsDefaultLocation Форма размещается в расположении Windows по умолчанию и не изменяется.

Значение CenterParent работает только с формами, которые являются либо дочерними формами многодокументного интерфейса (MDI), либо обычными формами, отображаемыми с помощью метода ShowDialog. CenterParent не влияет на обычную форму, которая отображается с помощью метода Show. Чтобы разместить форму по центру (переменная form ) другой формы (переменная parentForm ), используйте следующий код:

Расположение с помощью кода

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

Перемещение текущей формы

Переместить текущую форму можно, пока код выполняется в контексте формы. Например, если имеется Form1 с кнопкой, то при нажатии на нее вызывается обработчик событий Click . Обработчик в этом примере изменяет расположение формы на верхнюю левую часть экрана путем задания свойства Location:

Расположение другой формы

Расположение другой формы можно изменить после ее создания с помощью переменной, ссылающейся на форму. Например, предположим, что у вас есть две формы: Form1 (начальная форма в этом примере) и Form2 . В Form1 имеется кнопка, которая при нажатии вызывает событие Click . Обработчик этого события создает новый экземпляр формы Form2 и задает ее размер:

Если свойство Size не задано, размер формы по умолчанию — это размер, заданный во время разработки.

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

Заметьте, что должна быть выбрана вкладка .

Итак, мы нашли нашу вкладку, теперь ищем там следующую строку:



На ней отображены только некоторые элементы, скорее всего из которых вы все видели в той или иной программе.
То, что тут отображено, не составляет даже 1% от всего, что можно использовать на форме. Формам посвящён целый раздел сайта.



В появившемся окне выберите то, что указано:



Появится вот это. Нажмите правую кнопку:



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



перенесите на форму элементы Label (2 шт.), TextBox (2 шт.), ComboBox (1 шт.) и Button (2 шт.)
Если панели элементов нигде нет, её можно включить через Меню/Вид/Панель элементов

У вас получится примерно так:



Теперь, щёлкая одинарным щелчком любой из элементов, справа (у меня так настроено) или слева у вас в панели "Свойства" будут отображены свойства ЭТОГО элемента. Если панели свойств нет, её можно включить через Меню/Вид/Окно свойств.
При этом обратите внимание, что при выборе элемента его имя указано сверху панели



Кто это читает первый раз и пробует, наверняка случайно делал двойной щелчок по элементам и попадал сюда:
[code] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Calculator < public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void button2_Click(object sender, EventArgs e) < >private void Form1_Load(object sender, EventArgs e) < >private void textBox2_TextChanged(object sender, EventArgs e) < >private void button1_Click(object sender, EventArgs e) < >> > [/code]
Пока не обращайте внимание, это уберём в конце статьи. Просто удалить сейчас не получится, т.к. будет ошибка. Внизу описано, как правильно эти "случайности" убирать. Пока просто переключитесь на форму и читайте далее.
Выбирая каждый элемент, необходимо найти его свойство Text и изменить.
Например, выберите label1, зайдите в свойства и измените его свойство Text на "Первое число"



Щёлкните мышью в другом месте или нажмите Enter
На форме измените label1 на Первое число



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



"Вывод сюда" - означает, что результат будет выводиться на форму. А соответственно, нужен ещё один элемент label.
Добавьте его, найдите его свойство Text, измените на "0". Найдите свойство Font и измените так, чтобы было, как на форме



Для вызова окна редактирования текста в свойстве Font справа будут ". ", отображённые на скрине красным квадратиком



И последнее, осталось изменить имя формы. Для этого щёлкните в пустом месте формы 1 раз. В окне свойств вверху будет подписано "Form1". Найдите его свойство Text и измените на "Калькулятор", а так же ряд других свойств:



FormBorderStyle - чтобы ширину и высоту формы нельзя было менять во время её выполнения
MaximizeBox (false) - отключить на форме кнопку увеличения окна
MinimizeBox (false) - отключить на форме кнопку минимизации окна
Text - это описано было выше
Итого, получаем такую форму:



Теперь можно приступать к коду.
Элемент ComboBox пока не трогаем. С ним чуть позже.

Сделайте двойной щелчок на первой кнопке "Вывод сюда".
Если вы делали случайные двойные щелчки на других элементах, пока читали статью, то будет примерно так:
[code] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Calculator < public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void button2_Click(object sender, EventArgs e) < >private void Form1_Load(object sender, EventArgs e) < >private void textBox2_TextChanged(object sender, EventArgs e) < >private void button1_Click(object sender, EventArgs e) < //Курсор будет тут >> > [/code]
Если же это был первый двойной щелчок, то будет так:
[code] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Calculator < public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void button1_Click(object sender, EventArgs e) < //Курсор будет тут >> > [/code]
В коде, где написано "//Курсор будет тут" надо написать:
[code] int n1 = int.Parse(textBox1.Text); int n2 = int.Parse(textBox2.Text); [/code]
Это позволит прочитать число в текстовых полей textBox1 (поле для первого числа) и textBox2 (поле для второго числа). И тут же конвертировать их в числа.
Подробности смотрите тут: конвертировать строку в число
Теперь результат надо вывести в label3, который на форме у нас отображён большим нулём.
Добавляем строку и получаем такой полный код:
[code] int n1 = int.Parse(textBox1.Text); int n2 = int.Parse(textBox2.Text); label3.Text = (n1 + n2).ToString();
[/code]
Проверим, как у нас всё работает. Запустите программу через F5.
Теперь введите на форме два произвольных числа (без каких-либо пробелов, других символов) и нажмите первую кнопку



Внизу сразу отобразится результат.
При запуске не путайте нарисованную форму проекта и саму запущенную программу



Для того, чтобы вернуться в код, надо закрыть программу.
Если вы в коде, а программа запущена, оставить её выполнение можно через Shift+F5.

Теперь напишем код для 2 кнопки. Вернитесь на форму. Сделайте двойной щелчок по второй кнопке.
И напишите такой код:
[code] int n1 = int.Parse(textBox1.Text); int n2 = int.Parse(textBox2.Text); MessageBox.Show((n1 + n2).ToString());
[/code]
Запустите программу. Введите 2 произвольных числа и нажмите 2 кнопку.
Увидите это:


Теперь вернёмся к ComboBox. Это выпадающий список, в который мы внесём 4 арифметических знака.
Остановите программу, если она запущена.
Вернитесь на вкладку конструктора формы. Выберите ComboBox-элемент.
В окне свойств измените свойство Items через ". ", которые появятся там, где указано квадратиком.



Внесите данные и нажмите "ОК".
Теперь надо внести изменения в код.
Для первой кнопки так:
[code] int n1 = int.Parse(textBox1.Text); int n2 = int.Parse(textBox2.Text); int r = 0;
if (comboBox1.SelectedIndex == 0) r = n1 + n2;
if (comboBox1.SelectedIndex == 1) r = n1 - n2;
if (comboBox1.SelectedIndex == 2) r = n1 * n2;
if (comboBox1.SelectedIndex == 3) r = n1 / n2;
label3.Text = r.ToString();
[/code]
Для второй кнопки так:
[code] int n1 = int.Parse(textBox1.Text); int n2 = int.Parse(textBox2.Text); int r = 0;
if (comboBox1.SelectedIndex == 0) r = n1 + n2;
if (comboBox1.SelectedIndex == 1) r = n1 - n2;
if (comboBox1.SelectedIndex == 2) r = n1 * n2;
if (comboBox1.SelectedIndex == 3) r = n1 / n2;
MessageBox.Show(r.ToString());
[/code]
Запустите программу. Выберите нужное арифметическое действие



Если вы ничего не выберите, тогда результатом будет 0, т.к. comboBox1.SelectedIndex = -1 при этом. А на значение -1 нет прописанных условий
В программе не предусмотрены возможные ошибки при вводе текстовых полей, пустоты, деления на 0, иначе статья будет очень длинной. Суть статьи - описать понятие формы, её элементов и элементарного кода для них.



Нажмите "Нет".
Получаем список критических ошибок



Двойным щелчком переходим на одну из них:
И видим что-то подобное этому:
[code] // // textBox1 // this.textBox1.Location = new System.Drawing.Point(128, 30); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(100, 20); this.textBox1.TabIndex = 2; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(128, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(100, 20); this.textBox2.TabIndex = 3; this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged); // // button1 // this.button1.Location = new System.Drawing.Point(25, 174); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(102, 43); this.button1.TabIndex = 4; this.button1.Text = "Вывод сюда"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // button2 // this.button2.Location = new System.Drawing.Point(142, 174); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(109, 43); [/code]
В этом коде ошибочной является строка
[code] this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged); [/code]
она будет подчёрнута на месте "textBox2_TextChanged". Это означает, что сейчас у нас этот код обращается к обработчику, который мы только что удалили. Это нужно убрать. Всю строку. Тогда для textBox2 будет описание не из 5 строк
[code]
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(128, 59);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(100, 20);
this.textBox2.TabIndex = 3; this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged); [/code]
а из 4
[code] // // textBox2 // this.textBox2.Location = new System.Drawing.Point(128, 59); this.textBox2.Name = "textBox2"; this.textBox2.Size = new System.Drawing.Size(100, 20); this.textBox2.TabIndex = 3; [/code]

Нажмите F6 для повторной проверки кода, но при этом программа не запустится



Видим, что ошибок стало на 1 меньше.

Повторяем процедуру
Через двойной щелчок попадаем сюда:
[code] // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(284, 261); this.Controls.Add(this.label3); this.Controls.Add(this.comboBox1); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Controls.Add(this.textBox2); this.Controls.Add(this.textBox1); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "Form1"; this.Text = "Калькулятор"; this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); this.PerformLayout(); [/code]
и видим, что Form1_Load подчёркнут. Удаляем всю строку.

Теперь при запуске F6 - пустое окно с ошибками (значит всё успешно исправлено)
F5 - нормальный запуск

Шаг 1. Создание базы

Первым делом создадим новую базу данных test для хранения тестовой информации. Добавьте таблицу user со следующими полями:

  • id (INT) c атрибутом AUTO_INCREMENT ;
  • name (VARCHAR(100));
  • title (VARCHAR(100));
  • address (VARCHAR(100)).

Шаг 2. Создание проекта

Создайте проект для нового приложения. В Visual Studio для этого нужно зайти в меню File > New > Project .

Создание нового проекта в Visual Studio

Создание нового проекта в Visual Studio

После этого появится окно New Project:

Окно New Project в интерфейсе Visual Studio

Окно New Project в интерфейсе Visual Studio

В поле Name нужно вписать название вашего проекта, в поле Location – указать нужную директорию, в Solution name – ввести название решения. Заполнили данные – нажимаем OK .

Главный класс нового проекта в Visual Studio

Главный класс нового проекта в Visual Studio

Шаг 3. Создание интерфейса

Создайте представление будущей формы авторизации, как показано на рисунке ниже. Добавьте два поля ( username и password ) и кнопку для входа.

Шаг 4. Настройка соединения с базой

Создайте класс connection для настройки соединения с базой. Пример реализации представлен в листинге ниже:

Шаг 5. Код авторизации

Наконец, вернитесь к форме и добавьте следующий код:

Результат

Нажмите F5 , чтобы запустить программу. Если соединение с базой данных успешно установится, вы увидите только что созданную форму.

Интерфейс работающей программы

Интерфейс работающей программы

Работа над новым проектом (так в C++ Builder называется разрабатываемое приложение) начинается с создания стартовой формы — главного окна программы.

Стартовая форма создается путем изменения значений свойств формы Form1(настройки формы) и добавления к форме необходимых компонентов (полей ввода, полей вывода текстовой информации, командных кнопок).

Основные свойства формы, которые определяют ее вид и поведение во время работы программы, приведены в табл. 2.1.

Таблица 2.1. Свойства формы (объекта Form)


Для изменения значений свойств объектов, в том числе и формы, используется вкладка Properties (Свойства) диалогового окна Object Inspector. В левой колонке этой вкладки перечислены свойства выбранного объекта, в правой — указаны значения свойств.

При создании формы в первую очередь следует изменить значение свойства Caption (Заголовок). В нашем примере надо заменить текст Form1 на Сила тока. Чтобы это сделать, нужно в окне Object Inspector щелкнуть левой кнопкой мыши в строке Caption (в результате будет выделено значение свойства и появится курсор) и ввести текст: сила тока (рис. 2.2).

Рис. 2.2. Изменение значения свойства Caption путем ввода значения


Аналогичным образом можно установить значения свойств Height и width, которые определяют высоту и ширину формы. Размер формы, а также размер других компонентов задают в пикселах, т. е. точках экрана. Свойствам Height и width надо присвоить значения 200 и 330, соответственно.

Форма — это обычное окно. Поэтому размер формы можно изменить точно так же, как размер любого окна Windows, т. е. путем перетаскивания границы. По окончании перемещения границы значения свойств Height и width автоматически изменятся. Они будут соответствовать установленному размеру формы.

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

При выборе некоторых свойств, например, Borderstyle, справа от текущего значения свойства появляется значок раскрывающегося списка. Очевидно, что значение таких свойств можно задать путем выбора из списка (рис. 2.3).

Некоторые свойства являются сложными, т. е. их значение определяется совокупностью значений других (уточняющих) свойств. Например, свойство Border icons определяет, какие кнопки управления окном будут доступны во время работы программы. Значения этого свойства определяется совокупностью значений свойств MSystemMenu, biMinimize, biMaximize и biHelp, каждое из которых, в свою очередь, определяет наличие соответствующей командной кнопки в заголовке окна во время работы программы. Перед именами сложных свойств стоит значок "+", в результате щелчка на котором раскрывается список уточняющих свойств (рис. 2.4), значения которых можно задать обычным образом (ввести в поле или выбрать в списке допустимых значений).

Рис. 2.3. Установка значения свойства путем выбора из списка

Рис. 2.4. Изменение значения уточняющего свойства


В результате выбора некоторых свойств (щелчка кнопкой мыши на свойстве), рядом со значением свойства появляется командная кнопка с тремя точками. Это значит, что задать значение свойства можно в дополнительном диалоговом окне, которое появится в результате щелчка на этой кнопке. Например, значение сложного свойства Font можно задать в окне Object Inspector путем ввода значений уточняющих свойств, а можно воспользоваться стандартным диалоговым окном Шрифт, которое появится в результате щелчка на кнопке с тремя точками (рис. 2.5).

В табл. 2.2 перечислены свойства формы разрабатываемой программы, которые следует изменить. Остальные свойства формы оставлены без изменения и в таблице не приведены. В приведенной таблице в именах некоторых свойств есть точка. Это значит, что надо задать значение уточняющего свойства.

Рис. 2.5. Чтобы задать свойства шрифта, щелкните на кнопке с тремя точками

Читайте также: