Windows forms скрыть форму

Обновлено: 06.07.2024

Чтобы скрыть форму вызовите метод Hide.

В следующем примере кода показан способ скрытия формы frm1.

glob.frm1.Hide();

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

Пример: Можно передать функцию закрытия приложения другой форме. Для этого в событии FormClosed для этой формы необходимо прописать метод Show для начальной фомы.

private void Form2_FormClosed(object sender, FormClosedEventArgs e)

glob.frm1.Show();

Чтобы закрыть форму вызовите метод Close.

В следующем примере кода показан способ закрытия формы frm1.

glob.frm1.Close();

Примечание1. При закрытии начальной формы будет закрыто приложение.

Примечание2. При закрытии формы происходит ликвидация файловой переменной. Если закрытаяформа не является начальной и предполагается форму открывать неоднократно, то при открытии формы должны быть прописаны два метода: Show и new Form, например:

glob.frm2 = new Form2();

glob.frm2.Show();

Работа с элементами управления Windows Forms

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

Существуют разнообразные элементы управления, которые можно разместить в Windows Forms в зависимости от требований конкретного приложения.

Добавление элементов управления в формы Windows Forms

Большинство форм разрабатываются путем добавления элементов управления на поверхность формы с целью создания пользовательского интерфейса.

Чтобы нарисовать элемент управления в форме, выполните следующие действия.

В панели элементов щелкните элемент управления, который требуется добавить в форму.

Щелкните место в форме, где должен располагаться левый верхний угол элемента управления, а затем перетащите указатель мыши на место, в котором должен располагаться правый нижний угол элемента управления.

Элемент управления добавляется на форму в указанное место с указанными размерами.


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

Чтобы перетащить элемент управления в форму, выполните следующие действия.

В панели элементов щелкните требуемый элемент управления и перетащите его в форму.

Элемент добавляется в форму в указанное место с размером по умолчанию.


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

Можно также добавлять элементы управления на форму динамически во время выполнения. В приведенном ниже примере элемент управления TextBox (текстовое поле) будет добавлен на форму после щелчка элемента управления Button (кнопка).


Примечание. Для следующей процедуры требуется форма с уже расположенным в ней элементом управления Кнопка Button1 .

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

На форме 2 есть кнопка, которую я хотел бы скрыть при нажатии на нее.

Кнопку нажмите с кнопку в Form2

Это ничего не дает. Я явно что-то упускаю, но никак не могу понять, что именно.

Любая помощь, безусловно, ценится!

4 ответа

Я создаю приложение, в котором я должен показать полупрозрачную форму. Мне тоже нужно нарисовать какой-то текст на этой форме, чтобы пользователь знал какую-то информацию. Однако строки, которые я рисую, также полупрозрачны и трудно читаемы. Мне было интересно, есть ли способ нарисовать.

Я хочу заполнить combobox в форме 1, когда будет нажата кнопка OK в форме 2. Во-первых, кнопку Загрузить форму Form2 на form1 нажата, чтобы отобразить форму Form2. Затем появляется форма 2, и если нажать кнопку OK(кнопка на форме 2), то форма 1 ComboBox должна быть заполнена значениями из таблицы.

Если ваша форма 1 уже присутствует на странице, то зачем вам нужно инициализировать ее снова? Просто установите видимый статус на false, чтобы скрыть его.

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

Вы должны определить свой класс Form2, чтобы сохранить ссылку на основную форму.

Теперь, когда вы создаете экземпляр Form2, просто добавьте основную форму в конструктор:

Примечание: это будет относиться к форме, которая создает объект Form2.

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

Вот свойство, которое должно быть задано в форме 1.

Похожие вопросы:

После ввода соответствующего текста и нажатия клавиши enter я хочу, чтобы txtbA текст в форме 1 отображался в txtbB в форме 2. У меня уже есть написанный код ключевых событий, но я, кажется, не могу.

Я создаю приложение, в котором я должен показать полупрозрачную форму. Мне тоже нужно нарисовать какой-то текст на этой форме, чтобы пользователь знал какую-то информацию. Однако строки, которые я.

Я хочу заполнить combobox в форме 1, когда будет нажата кнопка OK в форме 2. Во-первых, кнопку Загрузить форму Form2 на form1 нажата, чтобы отобразить форму Form2. Затем появляется форма 2, и если.

Сейчас я использую winforms. У меня есть основная форма form1, и у меня есть кнопка, которая открывает форму 2. Когда я открываю форму 2, я хотел бы, чтобы форма 1 исчезла. Когда пользователь.

это мой первый пост. У меня есть огромная проблема, которая вызывает у меня головную боль. У меня есть приложение, использующее WinForms, a TTS (Text-To-Speech) голос и пользовательские кнопки с.

У меня есть 2 формы, скажем, Форма 1 и форма 2. В форме 1 есть кнопка , которая показывает форму 2 , когда она нажата, и ListView . В форме 2 есть textbox и кнопка . Когда кнопка нажата, я хочу.

У меня есть 2 winforms в моем проекте. Когда я нажал на кнопку Settings на форме 1, она показывает форму настроек, я делаю некоторые изменения в текстовых полях, и когда я нажимаю кнопку Сохранить.

У меня есть 2 формы в моем проекте, form1 и form2. На форме 1 есть кнопка, которую нужно нажать, чтобы отобразить данные на диаграмме, которая находится на форме 2. Как передать данные из формы 1 в.

Форма является основным компонентом графического интерфейса программы. Именно на ней размещаются управляющие интерфейсы.

Рассмотрим некоторые из свойств формы, которые влияют на её внешний вид.

Объявляем форму

Для того что бы объявить форму, нам надо добавить библиотеку System.Windows.Forms.dll

После объявляем форму $main_form

Отобразим форму $main_form.

В результате получилась вот такая форма:

DefaultForm

Что бы в загаловке формы отобразить текст нужно присвоить его свойству Text нашей формы:

Текст отобразится в заголовке:

DefaultFormTextHello

Изменение размера формы:

Давайте изменим размер формы.

Это можно сделать через свойства Width(ширина) и Height(высота) формы, где значения параметров это кол-во пикселей.

Этого же результата можно добиться используя параметр формы Size:

$main_form . Size = New-object System . Drawing . Size ( 300 , 500 )

Так же можно задать размер с помощью параметра DesktopBounds:

$main_form . DesktopBounds = New-object System . Drawing . Rectangle ( 0 , 0 , 300 , 500 )

Так же для изменения размеров можно воспользоваться свойством ClientSize

$main_form . ClientSize = New-object System . Drawing . Size ( 300 , 500 )

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

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

Для этогу существуют такие параметры , как MinimumSize(минимальный размер формы) и MaximumSize (максимальный размер формы). Если задать эти параметры, то в период жизни форма не сможет за них выйти.

Пример объявления данных свойств:

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

Для этого с начала надо разрешить менять размер формы, в зависимости от расположения объектов в области видимости свойством AutoSize перевести его в значение true

После надо выбрать режим автоматического подбора размера формы и указать его в свойстве AutoSizeMode. Существует два режима этого свойства GrowOnly и GrowAndShrink:

$main_form . AutoSizeMode = [ System . Windows . Forms . AutoSizeMode ] : : GrowOnly $main_form . AutoSizeMode = [ System . Windows . Forms . AutoSizeMode ] : : GrowAndShrink

Шрифты

Так же не малую роль в отображении формы влияют шрифты. К тому же настройки шрифтов наследуются на управляющие элементы принадлежащие этой форме.

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

$main_form . Font = New-Object System . Drawing . Font ( "Calibri" , 24 )

Что бы поменять цвет шрифта существует следующее свойство ForeColor:

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

Шаблон окна

Шаблон окна формы опредиляется парметром FormBorderStyle, который может принимать семь значений Fixed3D, FixedDialog, FixedSingle, FixedToolWindow, None, Sizabl, SizableToolWindow по умолчанию стоит значение Sizable. Заметим, что внешний вид формы на примерах может существенно отличаться на разных компьютерах и существенно зависит от OC. Так же после назначения определённого шаблона окна в дальнейшем его можно будет редактировать другими свойствами формы.

Рассмотрим шаблоны формы:

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : Fixed3D

FormBorderStyleFixed3D

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : FixedDialog

FormBorderStyleFixedDialog

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : FixedSingle

FormBorderStyleFixedSingle

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : FixedToolWindow

FormBorderStyleFixedToolWindow

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : None

FormBorderStyleNone

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : Sizable

FormBorderStyleSizable

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : SizableToolWindow

FormBorderStyleSizableToolWindow

Управляющие кнопки

Для управления отображения управляющими кнопками используются следующие свойства ControlBox, MaximizeBox и MinimizeBox.

Свойство ControlBox управляет видимостью всей областью управляющих кнопок. По умолчанию она находиться в состоянии true.

DefaultFormTextHello

Зададим данному свойству значение false

FormControlBoxFalse

Если в форме свойству Text присвоить пустое значение, то шапка формы совсем исчезнет.

Вот так будет выглядеть форма:

FormNotTitle

Включим назад ControlBox и рассмотрим следующие свойства: MaximizeBox и MinimizeBox. Они тоже булевые и служат для того, что бы выключать кнопки развернуть окно и свернуть окно. По умолчанию они имеют свойство true. Рассмотрим как выглядит их выключение:

FormMaximizeBoxFalse

FormMinimizeBoxFalse

Однако, если выключить и MaximizeBox и MinimizeBox кнопки перестают быть видимыми:

FormMaximizeBoxMinimizeBoxFalse

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

Иконка.

Иконка отображаемая в левом верхнем углу формы, а так же отображаемая в панели задач может определить через свойство формы Icon например вот так:

$main_form . Icon = New-Object System . Drawing . Icon ( "d:\favicon.ico" )

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

Элемент захвата

Для того, чтобы задать видимость захвата для изменения размера, отображаемого в правом нижнем углу формы. Нужно воспользоваться свойством SizeGripStyle. Оно имеет 3 значенич Auto, Hide, Show

Данное значение стоит по умолчанию. Форма сама решает отображать этот элемент или нет.

Элемент будет скрыт с формы.

$main_form . SizeGripStyle = [ System . Windows . Forms . SizeGripStyle ] : : Hide

FormSizeGripStyleHide

элемент отображается на форме

$main_form . SizeGripStyle = [ System . Windows . Forms . SizeGripStyle ] : : Show

FormSizeGripStyleShow

Цвет и прозрачность.

Что бы задасть цвет формы нужно воспользоваться свойством BackColor, этот параметр будет наследоваться размещённым на данной форме управляющим элементам. Сделаем цвет рабочей области, например синим:

FormBackColor

$main_form . BackgroundImage = [ System . Drawing . Image ] : : FromFile ( "d:\favicon.jpg" )

FormBackgroundImage

А в свойстве TransparencyKey формы мы должны указать, какой цвет будет заменяться на прозрачный.

Эти параметры прозрачности будут так же наследоваться на управляющие элементы формы.

FormTransparencyKey

Это свойство можно использовать для рисования не стандартных окон убрав перед этим рамку формы

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : None

Если же мы не хотим делать дырки в форме, а всеволишь сделать её слегка прозрачной, мы можем воспользоваться свойством Opacity, значения в ней колеблятся от 0 это полностью прозрачная до 1, не прозрачная.

FormOpacity

Курсор

Для изменения вида курсора в приложении можно воспользоваться свойством формы Cursor:

$main_form . Cursor = New-Object System . Windows . Forms . Cursor ( "d:\Cursor.cur" )

Так же можно узнать перехватывается ли курсор приложением в даннй момент, для этого нужно посмотреть данные свойства формы Capture

Что бы уведомить пользователя о текущем процессе, можно так же включить курсор ожидания указав в свойстве UseWaitCursor значение true

Состояние окна.

Что бы узнать в каком состоянии находиться окно или изменить его, можно воспользоваться свойством формы WindowState оно принимает три значения Maximized, Minimized, Normal.

Что бы развернуть окно:

$main_form . WindowState = [ System . Windows . Forms . FormWindowState ] : : Maximized

Свернуть в панель задач:

Перевести в обычный(свободный) режим:

$main_form . WindowState = [ System . Windows . Forms . FormWindowState ] : : Normal

Зеркальный вид окна

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

Для этого нам нужно сначала включить поддержку ввода текста с права на лево свойством формы RightToLeft

$main_form . RightToLeft = [ System . Windows . Forms . RightToLeft ] : : YES

Только после этого можно отобразить форму зеркально установив свойство формы RightToLeftLayout в значение true

FormMirrored

Посмотреть отображается ли форма в зеркальном виде можно из свойства формы IsMirrored.

Отображение в Панели задач.

Видимость окна.

Так же если надо сделать, что бы форма не закрывалась другими окнами можно воспользоваться свойством TopMost. Если установить его в значение true то другие окна не смогут заслонить его.

Для формы существуют параметры видимости, но для отображения формы лучше пользоваться функция Enabled если установить его в значение false, то его не удасться отобразить методом ShowDialog().

Так же если надо скрыть форму, то это можно сделать изменив свойство Visible на false. Можно так же отобразить форму, но это может быть не всегда хорошей идеей, лучше пользоваться методом ShowDialog.

Комментарии:

Комментарии 12

Огромное спасибо за подробный разбор!
Очень сильно помогло в пониманиии концепции построения GUI для повершела =)

Приятно осознавать, что мой блог помогает людям. 🙂

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