- Автор темы
- #1
Windows Forms.
Итак, мы подошли к волнующему и ответственному моменту - программированию Windows приложений. Перед тем как написать хотя бы одну строку кода определимся, как мы будем создавать Windows приложение. Тип проекта у нас останется Empty Project.После создания пустого каркаса зайдите в опции проекта (Project->имя_проекта properties).Должна быть выбрана вкладкаGeneral. В пункте Output Type надо поставить Windows Application(это означает, что приложение является Windows – приложением).Это и демонстрируется на рисунке.
Также нужно подключить 2 библиотеки динамической линковки(System.dll,System.Windows.Forms.dll). Для этого нужно выбрать Project->Add Refernce. И через кнопку select при активной закладки .NET выбрать указанные dll. Это показывается на рисунке ниже:
Выполнив всё это вы готовы к написанию программы. Теперь пришло время подковаться теоретически для взятия новых высот.
Пространство имен System.Windows.Forms
Это пространство предназначено для создания Windows - приложений с графическим интерфейсом. В этом пространстве есть много нужных и полезных классов.Первая программа:
Данная программа отображает на экран форму ( аналог диалога в терминологии Visual C++). Данная программа отображает на экран форму (аналог диалога в терминологии Visual C++).Form – это класс, который находится в пространстве System.Windows.Forms отвечает за создание форм. Вот его иерархия наследования:
Естественно у этого класса есть свойства и методы, например в нашем примере с помощью свойства Text мы изменили заголовок окна. Application – это класс, который отвечает за запуск, остановку приложения и т.п.. Метод Run() – это статический метод класса Application.Он запускает стандартный цикл работы с сообщениями для текущего потока. Форма, чья ссылка была передана в метод Run становится видимой и главной формой в приложении. Вообще в приложении может быть много форм, но главная будет только одна и когда она закрывается, все подчиненные формы закрываются тоже. Примеры работы с Windows.Forms смотрите в следующих разделах урока.
Элементы управления. Кнопки и надписи.
Итак, мы снова встречаемся с элементами управления. На этот раз вас ждет много приятных сюрпризов, связанных с огромным количеством визуальных свойств, присущих элементам управления Windows Forms. Начнем с того, что практически все элементы управления являются наследниками класса Contro, который является базовым для компонент с визуальным отображением.
Наследники класса Control:
В этом разделе мы представим несколько общих свойств и методов, присущих всем элементам управления, а также свойства и методы, которые специфичны кнопкам и надписям.
Некоторые общие методы и свойства
[CODE]public virtual Image BackgroundImage {get; set;} - фоновая картинка для кнопки.
public bool TabStop {get; set;} - участие в переходах по клавише Tab между элементами управления.[/CODE]
Некоторые свойства надписи
Итак, мы подошли к волнующему и ответственному моменту - программированию Windows приложений. Перед тем как написать хотя бы одну строку кода определимся, как мы будем создавать Windows приложение. Тип проекта у нас останется Empty Project.После создания пустого каркаса зайдите в опции проекта (Project->имя_проекта properties).Должна быть выбрана вкладкаGeneral. В пункте Output Type надо поставить Windows Application(это означает, что приложение является Windows – приложением).Это и демонстрируется на рисунке.
Также нужно подключить 2 библиотеки динамической линковки(System.dll,System.Windows.Forms.dll). Для этого нужно выбрать Project->Add Refernce. И через кнопку select при активной закладки .NET выбрать указанные dll. Это показывается на рисунке ниже:
Выполнив всё это вы готовы к написанию программы. Теперь пришло время подковаться теоретически для взятия новых высот.
Пространство имен 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 - отсутствие рамки.