• Добро пожаловать на сайт - Forumteam.digital !

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

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

36. Кнопки, надписи и формы.

Redman

<FORUMTEAM>
Команда форума
Регистрация
13.11.17
Сообщения
13.340
Реакции
8.377
Баллы
1.200
FTC
208¢
Windows Forms.
Итак, мы подошли к волнующему и ответственному моменту - программированию Windows приложений. Перед тем как написать хотя бы одну строку кода определимся, как мы будем создавать Windows приложение. Тип проекта у нас останется Empty Project.После создания пустого каркаса зайдите в опции проекта (Project->имя_проекта properties).Должна быть выбрана вкладкаGeneral. В пункте Output Type надо поставить Windows Application(это означает, что приложение является Windows – приложением).Это и демонстрируется на рисунке.

6.png


Также нужно подключить 2 библиотеки динамической линковки(System.dll,System.Windows.Forms.dll). Для этого нужно выбрать Project->Add Refernce. И через кнопку select при активной закладки .NET выбрать указанные dll. Это показывается на рисунке ниже:

7.png


Выполнив всё это вы готовы к написанию программы. Теперь пришло время подковаться теоретически для взятия новых высот.

Пространство имен System.Windows.Forms
Это пространство предназначено для создания Windows - приложений с графическим интерфейсом. В этом пространстве есть много нужных и полезных классов.Первая программа:
Код:
using System.Windows.Forms;
using System;
class Sample
{
    public static void Main()
    {
        // Создание формы
        Form frm = new Form();
        // Задание заголовка
        frm.Text = "Tell me a secret";

        Application.Run(frm);
    }
}

Данная программа отображает на экран форму ( аналог диалога в терминологии Visual C++). Данная программа отображает на экран форму (аналог диалога в терминологии Visual C++).Form – это класс, который находится в пространстве System.Windows.Forms отвечает за создание форм. Вот его иерархия наследования:
Код:
Object
   MarshalByRefObject
      Component
         Control
            ScrollableControl
               ContainerControl
                  Form

Естественно у этого класса есть свойства и методы, например в нашем примере с помощью свойства Text мы изменили заголовок окна. Application – это класс, который отвечает за запуск, остановку приложения и т.п.. Метод Run() – это статический метод класса Application.Он запускает стандартный цикл работы с сообщениями для текущего потока. Форма, чья ссылка была передана в метод Run становится видимой и главной формой в приложении. Вообще в приложении может быть много форм, но главная будет только одна и когда она закрывается, все подчиненные формы закрываются тоже. Примеры работы с Windows.Forms смотрите в следующих разделах урока.

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

Наследники класса Control:
Код:
System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Windows.Forms.Control
            System.ComponentModel.Design.ByteViewer
            System.Windows.Forms.AxHost
            System.Windows.Forms.ButtonBase
            System.Windows.Forms.DataGrid
            System.Windows.Forms.DateTimePicker
            System.Windows.Forms.GroupBox
            System.Windows.Forms.Label
            System.Windows.Forms.ListControl
            System.Windows.Forms.ListView
            System.Windows.Forms.MonthCalendar
            System.Windows.Forms.PictureBox
            System.Windows.Forms.PrintPreviewControl
            System.Windows.Forms.ProgressBar
            System.Windows.Forms.ScrollableControl
            System.Windows.Forms.ScrollBar
            System.Windows.Forms.Splitter
            System.Windows.Forms.StatusBar
            System.Windows.Forms.TabControl
            System.Windows.Forms.TextBoxBase
            System.Windows.Forms.ToolBar
            System.Windows.Forms.TrackBar
            System.Windows.Forms.TreeView

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

Некоторые общие методы и свойства
  • public Control Parent {get; set;} - родитель для данного элемента управления. Каждый элемент управления должен иметь предка, так как элемент управления без предка - невидим. Дочерний элемент располагается на поверхности предка, и не может выходить за пределы поверхности предка. Расположение дочернего элемента указывается относительно верхнего левого угла клиентской области предка. Потомок наследует свойства своего предка.
  • public virtual string Text {get; set;} - текст, ассоциированный с элементом управления (заголовок).
  • public Point Location {get; set;} - левая верхняя точка элемента управления, указанная относительно левой верхней точки клиентской области родителя. Point - структура, описывающая точку на плоскости.
  • public object Tag {get; set;} - объект, который можно ассоциировать с элементом управления.
  • public int Width {get; set;} - ширина элемента управления.
  • public int Height {get; set;} - высота элемента управления.
  • public string Name {get; set;} - имя для идентификации элемента управления.
  • public virtual Font Font {get; set;} - шрифт, ассоциированный с элементом управления.
  • public void Hide(); - функция, скрывающая элемент управления.
  • public void Show(); - функция, отображающая элемент управления.
  • public Point PointToClient(Point p); - функция, преобразующая экранную точку в клиентские координаты.
  • public Point PointToScreen(Point p); - функция, преобразующая клиентскую точку в экранные координаты.
  • А также огромное количество обработчиков всевозможных событий.
Некоторые свойства кнопки
[CODE]public virtual Image BackgroundImage {get; set;} - фоновая картинка для кнопки.

public bool TabStop {get; set;} - участие в переходах по клавише Tab между элементами управления.[/CODE]

Некоторые свойства надписи
Код:
public virtual bool AutoSize {get; set;} - способность надписи подгонять свой размер под содержимое (например, под длину и высоту отображаемого текста).

public virtual BorderStyle BorderStyle {get; set;} - стиль рамки для надписи. Варианты: Fixed3D - трехмерная рамка; FixedSingle - рамка из одной линии; None - отсутствие рамки.
 
Сверху Снизу