WinForm — сводка формы

искусственный интеллект
  1. Общие свойства
  • Свойство StartPosition

Используется для получения или установки начальной позиции формы времени выполнения.

Формат синтаксиса: public FormStartPosition StartPosition { get; set; }

Значение свойства: Одно из значений перечисления FormStartPosition, указывающее начальную позицию формы. описывается следующим образом:

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

 

пример:

private void Form1_Load(object sender, EventArgs e)

        {

This.StartPosition = FormStartPosition.CenterScreen;//Устанавливаем форму для отображения в игре

        }

  • Левая собственность

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

Формат синтаксиса: public int Left {get; set; }

  • Лучшее свойство

Получает или задает координату Y (в пикселях) верхнего края формы.

   private void Form1_Load(object sender, EventArgs e)

    {

          this.Left = 100;

          this.Top = 200;

   }

  • Имя свойства

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

Формат синтаксиса: общедоступная строка Имя { get; set; }

  • Свойство местоположения

Получает или задает координаты левого верхнего угла формы относительно левого верхнего угла рабочего стола.

Формат синтаксиса: public Point Location { get; set; }

Пример: this.Location = новая точка (16, 16);

  • Свойство TopMost

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

  • Свойство ширины

Используется для получения или установки ширины формы. Формат синтаксиса: public int Width { get; set; }

  • Свойство FormBorderStyle

Указывает стиль границы для отображения формы. Значение по умолчанию — FormBorderStyle.Sizable.

Формат синтаксиса: public FormBorderStyle FormBorderStyle { get; set; }

Значения перечисления FormBorderStyle следующие:

Атрибуты ценность значение
FormBorderStyle.None 0 без оправы
FormBorderStyle.FixedSingle 1 Фиксированная однострочная граница
FormBorderStyle.Fixed3D 2 Исправлены границы 3D-стиля
FormBorderStyle.FixedDialog 3 Фиксированная толстая рамка стиля диалога
FormBorderStyle.Sizable 4 изменяемая граница
FormBorderStyle.FixedToolWindow 5 Неизменяемые границы окна инструментов
FormBorderStyle.SizableToolWindow 6 Изменяемая граница окна инструментов

Примечание. При использовании FixedToolWindow и SizableToolWindow также необходимо установить для свойства ShowInTaskbar значение false. Пример: this.ShowInTaskbar=false;

  • Свойство ShowInTaskbar

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

  • Свойство ControlBox

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

  • Свойство MaximumBox

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

  • Свойство MinimizeBox

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

  • Свойство WindowState

Используется для получения или установки состояния окна формы. Формат синтаксиса: public FormWindowState WindowState { get; set; }

значение перечисления описывать
Maximized развернуть окно
Minimized свернуть окно
Normal окно размера по умолчанию

 

  • Свойство RightToLeft

Возвращает или задает значение, указывающее, выровнены ли элементы элемента управления для поддержки локали шрифтов с письмом справа налево. Формат синтаксиса: public virtual RightToLeft RightToLeft { get; set; }

значение перечисления описывать
No Текст читается слева налево, настройка по умолчанию.
Yes Текст читается справа налево.
Inherit Метод чтения текста наследуется от родительского элемента управления
  • Свойство BackColor

Используется для получения или установки цвета фона формы. Формат синтаксиса: public override Color BackColor { get; set; }

По умолчанию используется значение свойства DefaultBackColor.

  • Свойство BackgroundImage

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

private void Form1_Load(object sender, EventArgs e)

{

    this.BackgroundImage = Image.FromFile("test.jpg");        

 }

Примечание: test.jpg приведенного выше кода необходимо поместить в папку Debug программы.

  • Свойство BackgroundImageLayout

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

public virtual ImageLayout BackgroundImageLayout { get; set; }

Описание значения перечисления ImageLayout:

значение перечисления инструкция
None Изображение выравнивается по левому краю верхней части клиентской области элемента управления.
Tile Изображение расположено вдоль прямоугольной клиентской области элемента управления.
Center Изображение расположено по центру прямоугольной клиентской области элемента управления.
Stretch Изображение растянуто по прямоугольной рабочей области пространства.
Zoom Изображение увеличено в прямоугольной рабочей области пространства

 

  • Свойство AcceptButton

Это свойство используется для получения или установки значения, которое является именем кнопки, что эквивалентно нажатию кнопки в форме, когда пользователь нажимает клавишу ВВОД.

  • Свойство CancelButton

Это свойство используется для получения или установки значения, которое является именем кнопки.Когда пользователь нажимает клавишу ESC, это эквивалентно нажатию кнопки в форме.

 

  • Текстовое свойство

Это строковое свойство, которое задает или возвращает текст, отображаемый в строке заголовка окна.

  • Свойство высоты

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

  • Свойство непрозрачности

Получает или задает уровень прозрачности формы

  • Свойство ActiveControl

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

  • Свойство автопрокрутки

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

  • Включенное свойство

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

  • Свойство шрифта

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

  • Свойство ForeColor

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

  • Свойство IsMdiChild

Получает значение, указывающее, является ли форма дочерней формой многодокументного интерфейса (MDI).

  • Свойство IsMdiContainer

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

  • Свойство KeyPreview

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

  • Видимое свойство

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

  • Захват собственности

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

Примечание: Форма представляет собой тестовую форму запуска потока.Когда основная программа закрыта, когда форма не может быть закрыта основной программой, добавьте Environment.Exit(0) в Close() основной программы;

  1. Пример использования:
  • Функция: формировать градиент цвета фона

public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        protected override void OnPaintBackground(PaintEventArgs e)

        {

            int intLocation, intHeight;

            intLocation = this.ClientRectangle.Location.Y;

            intHeight = this.ClientRectangle.Height / 200;

            for (int i = 255; i >= 0; i--)

            {           

Color color = Color.FromArgb(1, i, 111);//Присвоить цвет цвету

SolidBrush solid = new SolidBrush(color);//Создаем экземпляр объекта класса монохромной кисти.

Pen pen = new Pen(solid, 2);//Создаем экземпляр пера объекта для рисования линий и кривых

                e.Graphics.DrawRectangle(pen, this.ClientRectangle.X, intLocation, this.Width, intLocation + intHeight);

intLocation = intLocation + intHeight; // Переназначаем переменную inLocation.

            }

        }

}

результат:

 

  • Функция: реализовать прокрутку субтитров в форме

  public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void timer1_Tick(object sender, EventArgs e)

        {

Label1.Left -= 2;//Устанавливаем расстояние между левым краем Label1 и левым краем клиентской области его контейнера.

If (label1.Right

            {

Label1.Left = this.Width;//Устанавливаем расстояние между левым краем label1 и левым краем клиентской области контейнера равным ширине формы.

            }

        }

        private void btnGo_Click(object sender, EventArgs e)

        {

            timer1.Enabled = true;

        }

        private void btnStop_Click(object sender, EventArgs e)

        {

            timer1.Enabled = false;

        }

        private void btnClose_Click(object sender, EventArgs e)

        {

            this.Close();

        }

  }

результат:

 

  • Функция: установить мигающую строку заголовка

В системе Windows, когда программа работает в фоновом режиме, если пользователю необходимо просмотреть оперативную информацию определенной формы, форма будет мигать, что привлечет внимание пользователя.Реализация этого примера в основном использует Функции API.

Функция API FlashWindow может заставить окно мигать в следующем формате синтаксиса:

  [System.Runtime.InteropServices.DllImportAttribute("user32.dll")]

public static extern bool FlashWindow(IntPtr handle, bool bInvert);

Описание параметра: handle указывает окно, которое нужно прошить, а bInvert указывает, следует ли восстанавливать состояние.

Примечание. При использовании функции FalshWidow форма мигает только один раз. Если форма продолжает мерцать, вам нужно использовать элемент управления Timer для вызова этой функции время от времени.

public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        [System.Runtime.InteropServices.DllImportAttribute("user32.dll")]

        public static extern bool FlashWindow(IntPtr handle, bool bInvert);

        private void btnGo_Click(object sender, EventArgs e)

        {

            timer1.Enabled = true;

        }

        private void btnStop_Click(object sender, EventArgs e)

        {

            timer1.Enabled = false;

        }

        private void timer1_Tick(object sender, EventArgs e)

        {

FlashWindow(this.Handle, true);//Запускаем функцию прошивки.

        }

  }

  • Отображение информации о свойствах формы

Информация о свойствах формы отображается через элемент управления PropertyGrid.Свойство SelectedObject элемента управления используется для получения или установки объекта, который отображает свойства в сетке. пример:

private void Form1_Load(object sender, EventArgs e)

        {

            propertyGrid1.SelectedObject = this;

       }

 

  • форма вызова

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

Модальная форма вызывается с помощью метода ShowDialog.Когда форма является текущей формой, другие формы недоступны.Только при закрытии модальной формы другие формы могут быть восстановлены в доступное состояние.

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

Пример модальной формы:

Frm2 frm=new Frm2();

Frm.ShowDialog();

Вызов немодальной формы:

Frm2 frm=new Frm2();

Frm.Show();

  • Две несвязанные страницы обмениваются данными

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

namespace CurrentReserving.Model

{

         Public delegate void ModelReturnEventHander(object sender,ModelChangedEventArgs e);

         public static class ReserveModel

         {

                   public static event ModelReturnEventHandler ModelChanged;

                   private static GuestReserveInfo _model;

                   public static GuestReserveInfo Model

                   {

get{return _model;}

set{

_model=value;

if(ModelChanged!=null&& _model!=null)

{

ModelChangedEventArgs ex=new ModelChangedEventArgs(_model);

}

}

}

}

public class ModelChangedEventArgs:EventArgs

{

         private GuestReserverInfo _model;

         public ModelChangedEventArgs(GuestReserveInfo _Model)

         {

                   _model=_Mode;

}

public GuestReserveInfo Model

{

         get{ return _model;}

}

}

}

После изменения информации выполните отправку информации об изменении

private void btnChangeInfo_Click(object sender,EventArgs e)

{

ReserveModel.Model=table._reserveInfo;

}

Страницы, которые принимают информацию, подписываются на события

public CurrentTableStatusPage()

{

         InitializeComponent();

         ReserveModel.ModelChanged+=new ModeReturnEventHander(ReserveModel_ModelChanged);

 

}

void Reservel_ModelChanged(object sender,ModelChangedEventArgs e)

{

         GuestReserveInfo reserveInfo=ReserveModel.Model;

}

  • Используйте анонимный метод, чтобы предотвратить приостановленную анимацию формы

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

        private void Form1_Load(object sender, EventArgs e)

        {

            Thread th = new Thread(() =>

              {

                  Invoke((MethodInvoker)(() =>

                  {

                      long sun = 0;

                      for (long i = 0; i < 1000000000; i++)

                      {

                          sun += i;

                                            

                      }

                      label1.Text = sun.ToString();

                  }

              ));

              });

            th.IsBackground = true;

            th.Start();

        }

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

Это достигается чтением и записью свойства Location формы в реестре. Обработайте время FormClosed формы перед закрытием формы, запишите значение свойства Location формы в реестр, а затем прочитайте сохраненные данные из реестра в событии Load формы и установите значение Свойство расположения формы, Таким образом, реализована функция запуска формы с последней закрытой позиции.

Чтение и запись реестра в основном осуществляется с помощью методов Get Value и Set Value класса RegistryKey.

        private void Form1_Load(object sender, EventArgs e)

        {

RegistryKey myReg1, myReg2;//Объявленный объект таблицы политик.

MyReg1 = Registry.CurrentUser;//Получить ключ реестра текущего пользователя.

            try

            {

MyReg2 = myReg1.CreateSubKey("Software\\MySoft");//Создаем подраздел в реестре

This.Location = new Point(Convert.ToInt16(myReg2.GetValue("1")), Convert.ToInt16(myReg2.GetValue("2")));//Установить позицию отображения формы.

 

            }

            catch

            {

            }

        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)

        {

            RegistryKey myReg1, myReg2;

            myReg1 = Registry.CurrentUser;

            myReg2 = myReg1.CreateSubKey("Software\\MySoft");

            try

            {

                myReg2.SetValue("1", this.Location.X.ToString());

                myReg2.SetValue("2", this.Location.Y.ToString());

            }

            catch

            { }

        }

  • Изменение размера формы в соответствии с размером рабочего стола

Класс экрана — это одно или несколько устройств отображения в одной системе. Его свойство PrimaryScreen используется для получения основного дисплея, обзорное письмо возвращает объект экрана, а свойство WorkingArea объекта экрана можно вызвать для получения рабочей области дисплея. .

        private void Form1_Load(object sender, EventArgs e)

        {

            int deskWidth = Screen.PrimaryScreen.WorkingArea.Width;

            int deskHeight = Screen.PrimaryScreen.WorkingArea.Height;

            this.Width = Convert.ToInt32(deskWidth * 0.8);

            this.Height = Convert.ToInt32(deskHeight * 0.8);

        }

  • как добавить иконку в exe файл

Щелкните правой кнопкой мыши на файле проекта exe и выберите «Свойства» - «Выбрать приложение» - «Иконка и список» - «Иконка», выберите соответствующую картинку.