Форум программистов Vingrad
Модераторы: Partizan, gambit |
Поиск: |
Новичкам посвящается, Крепкие базовые знания C# |
Опции темы |
Zdvig |
|
||
Шустрый Профиль Репутация: 1
|
Для новичков в C# будет полезным пройти курс обучения на www.intuit.ru Курс состоит из 25 лекций, после каждой необходимо пройти тест на знание полученного материала. Интересно, кто-нибудь проходил этот курс? Хотелось бы услышать мнение. ——————— Лампочка — ожерелье голых поп. Вся любовь — оп-хоп-хоп! |
||
|
|||
arilou |
|
||
Великий МунаБудвин Профиль
Репутация: 21
|
Zdvig Приводи примеры заданий, оценим. ——————— |
||
|
|||
Ch0bits |
|
||
Python Dev. Профиль
Репутация: 9
|
Zdvig ——————— Quizful — новый портал с классными IT тестами! |
||
|
|||
HalkaR |
|
||
Пуфыстый назгул Профиль
Репутация: 14
|
Не обязательно — сайт бесплатный и вполне может считаться учебным пособием. В принципе полезный сайтц и про С# там давольно подробно. |
||
|
|||
Zdvig |
|
||
Шустрый Профиль Репутация: 1
|
Я не хотел это использовать, как рекламу, потому вобщем-то и ссылку дал как текст. Я сейчас на второй лекции, только начал обучение Вопросы предусматривают доскональное знание каждой отдельной темы в лекции. Вот некоторые тестовые задания после 2-ой лекции: Начальный Windows-проект содержит: 2. Отметьте истинные высказывания: 3. Для создания XML-отчета необходимо: 4. Тег <summary>: 5. Правда ли, что: ——————— Лампочка — ожерелье голых поп. Вся любовь — оп-хоп-хоп! |
||
|
|||
Ch0bits |
|
||||
Python Dev. Профиль
Репутация: 9
|
Я в хорошем смысле имел ввиду «дать по репе» Zdvig Кстати, не чисто что-то и с их лекциями. Не знаю какие «кандидаты наук» их писали, но там встречаются фразы типа: «в этой книге» или «эта книга». Скопировали что-ли? Это сообщение отредактировал(а) Ch0bits — 6.2.2006, 22:45 ——————— Quizful — новый портал с классными IT тестами! |
||||
|
|||||
Zdvig |
|
||
Шустрый Профиль Репутация: 1
|
Ch0bits Увидел, что значит репа Это сообщение отредактировал(а) Zdvig — 6.2.2006, 23:01 ——————— Лампочка — ожерелье голых поп. Вся любовь — оп-хоп-хоп! |
||
|
|||
Прежде чем создать тему, посмотрите сюда: | |
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс «транслит» если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
this.textBox1
= new
System.Windows.Forms.TextBox();
this.button1
= new
System.Windows.Forms.Button();
this.textBox2
= new
System.Windows.Forms.TextBox();
this.label2
= new
System.Windows.Forms.Label();
this.SuspendLayout();
//
//
label1
//
this.label1.Location
= new
System.Drawing.Point(24,
40);
this.label1.Name
= «label1»;
this.label1.Size
= new
System.Drawing.Size(152,
32);
this.label1.TabIndex
= 0;
this.label1.Text
= «Ваше
имя»;
this.label1.TextAlign
=System.Drawing.ContentAlignment.MiddleCenter;
… аналогично
задаются описания свойств всех элементов
управления …
… далее
задаются свойства самой формы …
//
//
Form1
//
this.AutoScaleBaseSize
= new
System.Drawing.Size(6,
15);
this.ClientSize
= new
System.Drawing.Size(528,
268);
this.Controls.AddRange(new
System.Windows.Forms.Control[]
{
this.textBox2,this.label2,this.button1,this.textBox1,this.label1
});
this.Name
= «Form1»;
this.Text
= «Приветствие»;
this.Load
+= new
System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
#endregion
Заметьте, в тэге
summary нас предупреждают,
что этот метод требуется специальному
инструментарию – Дизайнеру формы, и он
не предназначен для редактирования
пользователем; добавление и удаление
кода этого метода производится
автоматически. Обращаю внимание, после
заполнения свойств элементов управления
заключительным шагом является их
добавление в коллекцию Controls,
хранящую все элементы управления. Здесь
используется метод AddRange,
позволяющий добавить в коллекцию одним
махом целый массив элементов управления.
Метод Add позволяет
добавлять в коллекцию по одному элементу.
Позже нам придется добавлять элементы
управления в форму программно, динамически
изменяя интерфейс формы. Для этого нам
придется выполнять те же операции:
объявить элемент управления, создать
его, используя конструкцию new,
задать нужные свойства, и добавить в
коллекцию Controls.
В заключение приведу
текст обработчика событий командной
кнопки. Как задается обработчик того
или иного события для элементов
управления? Это можно делать по-разному.
Есть стандартный способ включения
событий. Достаточно выделить нужный
элемент в форме, в окне свойств нажать
кнопку событий (со значком молнии) и из
списка событий выбрать нужное событие
и щелкнуть по нему. В данной ситуации
все можно сделать проще – двойной щелчок
по кнопке включает событие и автоматически
строится заготовка обработчика события
с нужным именем и параметрами. Вот
как она
выглядит:
private
void button1_Click(object
sender,
System.EventArgs e)
{
}
Нам остается добавить
свой текст. Я добавил следующие строки:
string
temp;
temp
= textBox1.Text;
if(
temp == «»)
textBox2.Text
= «Здравствуй,
мир!»;
else
textBox2.Text
= «Здравствуй,
» + temp + » !»;
И вот как это работает:
Рис.
2.5. Форма «Приветствие» в процессе работы
На этом мы закончим
первое знакомство с проектами на C# и в
последующих лекциях приступим к
систематическому изучению возможностей
языка.
Вариант
1
-
Сколько
различных типов проектов на C#
можно создать в Visual Studio .Net 2003?
-
2;
-
12;
-
число их не ограничено;
-
16.
-
Отметьте
истинные высказывания:
-
любой проект,
входящий в решение, может выступать в
роли стартового проекта; -
имя решения,
пространства имен, проекта и класса,
создаваемые по умолчанию, совпадают; -
каждый класс содержит
одно или несколько пространств имен; -
для каждого решения
всегда создается XML-отчет.
-
Решение
– это:
-
специальный тип
проекта; -
специальный компонент
проекта; -
основа сборки –
модуль, содержащий проекты и другие
ресурсы, входящие в сборку; -
стартовый проект
на языке C#.
Вариант
2
-
Проект
– это:
-
модуль, содержащий
классы и являющийся частью решения; -
спецификация,
отвечающая требованиям CLS; -
компонент пространства
имен; -
набор классов,
используемых при построении самой
Visual Studio .Net.
-
Отметьте
истинные высказывания:
-
пространство имен
допускает вложенность и может содержать
в качестве элемента пространство имен; -
класс Form1 в
Windows-проекте по умолчанию является
наследником класса Form; -
любой стартовый
проект должен содержать точку входа –
процедуру Main.
-
Для
создания XML-отчета
необходимо:
-
задать хотя бы один
тэг <summary>; -
отчет всегда строится
вместе с решением; -
включить соответствующее
свойство решения.
Вариант
3
-
Начальный
Windows-проект содержит:
-
класс Window;
-
класс Form;
-
класс Form1 –
наследника класса Form; -
пространство имен
Form.
-
Отметьте
истинные высказывания:
-
метод Run – это первый
выполняемый метод Windows-проекта; -
процедура Main
консольного проекта содержит вызов
метода Run; -
класс может выступать
в роли цели вызова; -
в каждый момент
выполнения проекта существует текущий
объект.
-
Если
целью вызова является текущий объект,
то вызываемый метод должен быть:
-
статическим методом
произвольного класса; -
динамическим
(экземплярным) методом произвольного
класса; -
динамическим
(экземплярным) методом класса, объектом
которого является текущий объект; -
статическим методом
класса, объектом которого является
текущий объект.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
Аннотация: Создание языка. Его особенности. Решения, проекты, пространства имен. Консольные и Windows-приложения C#, построенные по умолчанию.
Создание C#
Язык C# является наиболее известной новинкой в области создания языков программирования. В отличие от 60-х годов XX века — периода бурного языкотворчества — в нынешнее время языки создаются крайне редко. За последние 15 лет большое влияние на теорию и практику программирования оказали лишь два языка: Eiffel, лучший, по моему мнению, объектно-ориентированный язык, и Java, ставший популярным во многом благодаря технологии его использования в Интернете и появления такого понятия как виртуальная Java-машина. Чтобы новый язык получил признание, он должен действительно обладать принципиально новыми качествами. Языку C# повезло с родителями. Явившись на свет в недрах Microsoft, будучи наследником C++, он с первых своих шагов получил мощную поддержку. Однако этого явно недостаточно для настоящего признания достоинств языка. Попробуем разобраться, имеет ли он большое будущее?
Создателем языка является сотрудник Microsoft Андреас Хейлсберг. Он стал известным в мире программистов задолго до того, как пришел в Microsoft. Хейлсберг входил в число ведущих разработчиков одной из самых популярных сред разработки — Delphi. В Microsoft он участвовал в создании версии Java — J++, так что опыта в написании языков и сред программирования ему не занимать. Как отмечал сам Андреас Хейлсберг, C# создавался как язык компонентного программирования, и в этом одно из главных достоинств языка, направленное на возможность повторного использования созданных компонентов. Из других объективных факторов отметим следующие:
- C# создавался параллельно с каркасом Framework .Net и в полной мере учитывает все его возможности — как FCL, так и CLR;
- C# является полностью объектно-ориентированным языком, где даже типы, встроенные в язык, представлены классами;
- C# является мощным объектным языком с возможностями наследования и универсализации;
- C# является наследником языков C/C++, сохраняя лучшие черты этих популярных языков программирования. Общий с этими языками синтаксис, знакомые операторы языка облегчают переход программистов от С++ к C#;
- сохранив основные черты своего великого родителя, язык стал проще и надежнее. Простота и надежность, главным образом, связаны с тем, что на C# хотя и допускаются, но не поощряются такие опасные свойства С++ как указатели, адресация, разыменование, адресная арифметика;
- благодаря каркасу Framework .Net, ставшему надстройкой над операционной системой, программисты C# получают те же преимущества работы с виртуальной машиной, что и программисты Java. Эффективность кода даже повышается, поскольку исполнительная среда CLR представляет собой компилятор промежуточного языка, в то время как виртуальная Java-машина является интерпретатором байт-кода;
- мощная библиотека каркаса поддерживает удобство построения различных типов приложений на C#, позволяя легко строить Web-службы, другие виды компонентов, достаточно просто сохранять и получать информацию из базы данных и других хранилищ данных;
- реализация, сочетающая построение надежного и эффективного кода, является немаловажным фактором, способствующим успеху C#.
Виды проектов
Как уже отмечалось, Visual Studio .Net для языков C#, Visual Basic и J# предлагает 12 возможных видов проектов. Среди них есть пустой проект, в котором изначально не содержится никакой функциональности; есть также проект, ориентированный на создание Web-служб. В этой книге, направленной, прежде всего, на изучение языка C#, основным видом используемых проектов будут обычные Windows-приложения. На начальных этапах, чтобы не усложнять задачу проблемами пользовательского интерфейса, будем рассматривать также консольные приложения.
Давайте разберемся, как создаются проекты и что они изначально собой представляют. Поговорим также о сопряженных понятиях: решение (solution), проект (project), пространство имен (namespace), сборка (assembly). Рассмотрим результаты работы компилятора Visual Studio с позиций программиста, работающего над проектом, и с позиций CLR, компилирующей PE-файл в исходный код процессора.
С точки зрения программиста, компилятор создает решение, с точки зрения CLR — сборку, содержащую PE-файл. Программист работает с решением, CLR — со сборкой.
Решение содержит один или несколько проектов, ресурсы, необходимые этим проектам, возможно, дополнительные файлы, не входящие в проекты. Один из проектов решения должен быть выделен и назначен стартовым проектом. Выполнение решения начинается со стартового проекта. Проекты одного решения могут быть зависимыми или независимыми. Например, все проекты одной лекции данной книги могут быть для удобства собраны в одном решении и иметь общие свойства
. Изменяя стартовый проект, получаем возможность перехода к нужному примеру. Заметьте, стартовый проект должен иметь точку входа — класс, содержащий статическую процедуру с именем Main, которой автоматически передается управление в момент запуска решения на выполнение. В уже имеющееся решение можно добавлять как новые, так и существующие проекты. Один и тот же проект может входить в несколько решений.
Проект состоит из классов, собранных в одном или нескольких пространствах имен. Пространства имен позволяют структурировать проекты, содержащие большое число классов, объединяя в одну группу близкие классы. Если над проектом работает несколько исполнителей, то, как правило, каждый из них создает свое пространство имен. Помимо структуризации, это дает возможность присваивать классам имена, не задумываясь об их уникальности. В разных пространствах имен могут существовать одноименные классы. Проект — это основная единица, с которой работает программист. Он выбирает тип проекта
, а Visual Studio создает скелет проекта в соответствии с выбранным типом.
Дальнейшие объяснения лучше сочетать с реальной работой над проектами. Поэтому во всей этой книге я буду вкратце описывать свои действия по реализации тех или иных проектов, надеясь, что их повторение читателем будет способствовать пониманию текста и сути изучаемых вопросов.
Консольный проект
У себя на компьютере я открыл установленную лицензионную версию Visual Studio .Net 2003, выбрал из предложенного меню — создание нового проекта на C#, установил вид проекта — консольное приложение, дал имя проекту — ConsoleHello, указал, где будет храниться проект. Как выглядит задание этих установок, показано на рис. 2.1.
Рис.
2.1.
Окно создания нового проекта
Если принять эти установки, то компилятор создаст решение, имя которого совпадает с именем проекта. На рис. 2.2 показано, как выглядит это решение в среде разработки:
Рис.
2.2.
Среда разработки и консольное приложение, построенное по умолчанию
Интегрированная среда разработки IDE (Integrated Development Environment) Visual Studio является многооконной, настраиваемой, обладает большим набором возможностей. Внешний вид ее достаточно традиционен, хотя здесь есть новые возможности; я не буду заниматься ее описанием, полагаясь на опыт читателя и справочную систему. Обращаю внимание лишь на три окна, из тех, что показаны на рис. 2.2. В окне Solution Explorer представлена структура построенного решения. В окне Properties можно увидеть свойства выбранного элемента решения. В окне документов отображается выбранный документ, в данном случае, программный код класса проекта — ConsoleHello.Class1. Заметьте, в этом окне можно отображать и другие документы, список которых показан в верхней части окна.
Построенное решение содержит, естественно, единственный заданный нами проект — ConsoleHello. Наш проект, как показано на рис. 2.2, включает в себя папку со ссылками на системные пространства имен из библиотеки FCL, файл со значком приложения и два файла с расширением cs. Файл AssemblyInfo содержит информацию, используемую в сборке, а файл со стандартным именем Class1 является построенным по умолчанию классом, который задает точку входа — процедуру Main, содержащую для данного типа проекта только комментарий.
Заметьте, класс проекта погружен в пространство имен, имеющее по умолчанию то же имя, что и решение, и проект. Итак, при создании нового проекта автоматически создается достаточно сложная вложенная структура — решение, содержащее проект, содержащий пространство имен, содержащее класс, содержащий точку входа. Для простых решений такая структурированность представляется избыточной, но для сложных — она осмысленна и полезна.
Помимо понимания структуры решения, стоит также разобраться в трех важных элементах, включенных в начальный проект — предложение using, тэги документации в комментариях и атрибуты.
Пространству имен может предшествовать одно или несколько предложений using, где после ключевого слова следует название пространства имен — из библиотеки FCL или из проектов, связанных с текущим проектом. В данном случае задается пространство имен System — основное пространство имен библиотеки FCL. Предложение using NameA облегчает запись при использовании классов, входящих в пространство NameA, поскольку в этом случае не требуется каждый раз задавать полное имя класса с указанием имени пространства, содержащего этот класс. Чуть позже мы увидим это на примере работы
с классом Console пространства System. Заметьте, полное имя
может потребоваться, если в нескольких используемых пространствах имен имеются классы с одинаковыми именами.
Все языки допускают комментарии. В C#, как и в С++, допускаются однострочные и многострочные комментарии. Первые начинаются с двух символов косой черты. Весь текст до конца строки, следующий за этой парой символов, (например, «//любой текст» ) воспринимается как комментарий, не влияющий на выполнение программного кода. Началом многострочного комментария является пара символов /*, а концом — */. Заметьте, тело процедуры Main содержит три однострочных комментария.
Здесь же, в проекте, построенном по умолчанию, мы встречаемся с еще одной весьма важной новинкой C# — XML-тегами, формально являющимися частью комментария. Отметим, что описанию класса Class1 и описанию метода Main предшествует заданный в строчном комментарии XML-тег <summary>. Этот тэг распознается специальным инструментарием, строящим XML-отчет проекта. Идея самодокументируемых программных проектов, у которых документация является неотъемлемой частью, является важной составляющей стиля компонентного надежного программирования на C#. Мы рассмотрим реализацию этой идеи в свое время более подробно, но уже с первых шагов будем использовать теги документирования и строить XML-отчеты. Заметьте, кроме тега
<summary> возможны и другие тэги, включаемые в отчеты. Некоторые теги
добавляются почти автоматически. Если в нужном месте (перед объявлением класса, метода) набрать подряд три символа косой черты, то автоматически вставится тэг документирования, так что останется только дополнить его соответствующей информацией.
- Главная
- Экспертные системы
- Создание приложений под Windows
6247
Одним из распространенных видов пользовательских приложений на сегодняшний день есть проекты, которые широко используют элементы графического интерфейса. Эти проекты разрабатываются и выполняются на аппаратных платформах, функционирующих под управлением ОС Windows и выполняют типовые задачи интеллектуального клиента информационной системы клиент-серверной архитектуры.
Чтобы определить сущность проектов современных Windows-приложений, необходимо рассмотреть сущность связанных понятий: решения (solution), проект (project), пространство имен (namespace), сборник (assembly). Рассмотрим подробнее основные понятия и этапы создания приложений под Windows.
Создание приложений под Windows
С точки зрения программиста, работающего над проектом, результатом работы компилятора среды разработки (Visual Studio) будет решение. С позиций общеязыковой среды выполнения CLR каркаса Framework, компилятор создает сборник, содержащий перемещаемый исполняемый файл. Решение содержит один или несколько проектов.
Если решение содержит несколько проектов, один из них должен быть назначен стартовым. Выполнение решения начинается со стартового проекта. Проекты одного решения могут быть зависимыми или независимыми. Например, все проекты одного структурного подразделения произвольно выбранного предприятия могут быть, для удобства, собранные в одном решении и иметь общие свойства.
Проекты Windows-приложений разрабатываются на основе объектно-ориентированного программирования, то есть данные представляются в виде экземпляров классов — объектов, с последующей реализацией операций над этими объектами. Стартовый проект должен иметь точку входа — класс, содержащий статическую процедуру с именем Main.
В момент запуска решения на выполнение этой процедуре автоматически передается управление приложением. В существующее решение можно добавлять как новые, так и существующие проекты. Один проект может входить в несколько решений. Классы проекта систематизированы в одном или нескольких пространствах имен. Пространства имен позволяют структурировать проекты, содержащие большое количество классов, объединяя в одну группу близкие классы.
Если над проектом работает несколько исполнителей, то, как правило, каждый из них создает свое пространство имен. Кроме структуризации, это дает возможность присваивать классам имена, не задумываясь об их уникальности за пределами пространства. Проект представляет собой основную единицу, с которой работает программист для создания Windows-приложения.
При использовании в качестве среды разработки, Visual Studio, он выбирает соответствующий тип, после чего, механизм среды создает начальную структуру проекта с точкой входа. По умолчанию начальная структура Windows-приложения содержит класс Form1 — наследник класса Form библиотеки FCL. Этот класс содержит точку входа в проект (процедуру Main), что вызывает статический метод Run класса Application.
Метод Run предназначен для создания объекта класса Form1 и открытие его видимого образа — формы. Формы представляют собой визуальные объекты, обеспечивающие функциональность Windows-приложения. Обычно Windows-приложение содержит несколько форм, которые открываются и закрываются в процессе работы. В каждый конкретный момент на экране может быть открыто одно или несколько форм. Пользователь имеет возможность работать с одной формой или переключаться по ходу работы на другую форму.
Процесс создания формы
Следует четко различать процесс создания формы, то есть объекта, принадлежащего классу Form (наследнику этого класса) и процесс вывода формы на экран. Для показа формы служит метод Show этого класса, который вызывается соответствующим объектом. Для сокрытие формы используется метод Hide. На практике методы Show и Hide изменяют свойство Visible объекта, устанавливая ее значение или true (да), или false (нет).
Между сокрытие формы и ее закрытием, существует разница и реализуются эти события различными методами: Hide и Close. Первый из них делает форму невидимой, однако сам объект существует. Метод Close закрывает форму, освобождая занятые ею ресурсы. Вызвать метод Show после вызова метода Close невозможно, если только не создать объект заново.
Открытие и показ формы всегда означает вызов метода Show. То есть, формы должны иметь метод Close, но не имеют метода Open. Формы, как и все объекты, создаются при вызове конструктора формы. Форма, которая открывается в процедуре Main при вызове метода Run, называется главной формой проекта. Ее закрытие приводит к закрытию всех остальных форм и завершению Windows-приложения.
Завершить приложение можно, также, программно, вызвав в нужный момент статический метод Exit класса Application. Закрытие других форм не приводит к завершению проекта. Обычно главная форма проекта всегда открыта, тогда как остальные формы открывается и закрывается (скрываются). Можно создавать формы как объекты класса Form.
Однако такие объекты довольно редки. Чаще всего создается специальный класс FormX — наследник класса Form. В частности, так происходит во время создания начальной платформы Windows-приложения, когда создается класс Form1 — наследник класса Form. Возможна ситуация, когда вновь создаваемая форма во многом должна быть похожей на уже существующую, тогда класс новой формы может быть сделан наследником класса существующей формы.
Модальные и немодальные окна
В структуре Windows-приложений применяются модальные и немодальные окна. Окно называется модальным, если нельзя закончить работу в открытом окне до тех пор, пока оно не будет закрыто. Немодальные окна допускают параллельную работу в окнах. Окно становится модальным или немодальный в зависимости от свойств его формы.
Метод Show открывает форму, как немодальные, а метод ShowDialog — как модальную. Часто в структуре Windows-приложений различные формы должны работать с одним объектом, проводя с ним различные операции. Конечно, такая схема реализуется следующим образом:
- объект создается в одной из форм (чаще всего, в главной);
- при создании следующей формы глобальный объект передается конструктору новой формы качестве аргумента;
- одно из свойств новой формы должна представлять ссылку на объект соответствующего класса так, что конструктору останется только связать ссылку с переданным ему объектом.
Указанный порядок действий можно характеризовать как эффективное программирование, поскольку, объект создается только один раз, а различные формы могут его использовать, оперируя исключительно ссылками на него.
Компоненты интерфейса форм Windows-приложений реализуются имеющимися в них элементами управления.
Элементы управления предназначены для отображения информации пользователям и реакции на определенные события. Элементы управления Windows-приложений можно сгруппировать по нескольким функциональным группам.
- Группа командных объектов. Элементы управления Button, LinkLabel, ToolBar реагируют на нажатие активной зоны и инициируют определенное событие. Это наиболее распространенная группа элементов.
- Группа текстовых объектов. Большинство приложений позволяет пользователю вводить текст и, в свою очередь, выводят различную информацию в виде текстовых записей. Элементы TextBox, RichTextBox принимают текст, а элементы Label, StatusBar выводят ее. Для обработки введенного пользователем текста, как правило, следует нажать на один или несколько элементов из группы командных объектов.
- Группа переключателей. Приложение может содержать несколько определенных вариантов исполнения действия или решения задачи. Элементы управления этой группы предоставляют возможность пользователю осуществить выбор. Это одна из самых распространенных групп элементов, в которую входят ComboBox, ListBox, ListView, TreeView и многие другие.
- Группа контейнеров. С элементами этой группы действия приложения практически никогда не связываются, но они имеют большое значение для организации других элементов управления, их систематизации и общего дизайна формы. Как правило, элементы этой группы используются в качестве визуальной платформы для кнопок, текстовых полей, списков. Элементы Panel, GroupBox, TabControl реализуют разделение интерфейса приложения на логические группы, обеспечивая удобство работы.
- Группа графических элементов. Часто Windows-приложение содержит графику: иконки, заставки, встроенные изображения. Для размещения и отображения их на форме используются элементы для работы с графикой: Image List, Picture Box.
Диалоговые окна. Выполняя различные операции с документом (открытие, сохранение, печать, предварительный просмотр) необходимо использовать соответствующие диалоговые окна. Программисту, который применяет современную среду разработки приложений, нет необходимости заниматься созданием окон стандартных процедур, поскольку элементы OpenFileDialog, SaveFile Dialog, ColorDialog, PrintDialog содержат уже готовые операции.
Группа меню. Практически во всех Windows-приложениях присутствует меню, содержащее в себе доступ к функциональным возможностям приложения. Элементы MainMenu, ContextMenu представляют собой готовые формы для внесения заголовков и пунктов меню. Размещать на форме элементы управления можно двумя способами.
- Во-первых: в режиме проектирования использовать графический интерфейс среды разработки для визуального помещения на поверхность формы необходимых элементов. При этом как только на форме появляется новый элемент управления, в тексте класса немедленно появляются соответствующие строки программного кода.
- Во-вторых: в программном режиме писать соответственные строчки кода, что приводит к появлению элементов управления на форме. Следует помнить, что форма — это видимый образ класса Form, а элементы управления, которые находятся на форме — это видимые образы экземпляров классов (объектов), наследников класса Control.
Итак форма с ее элементами управления является прямым отражением программного кода. Каждый вид элементов управления описывается собственным классом. Библиотека FCL содержит большое количество классов, реализующих элементы управления. Все эти классы являются потомками единственного прародителя — класса Object.
Класс Control
Класс Control в иерархии классов занимает довольно высокое положение. Он имеет два важных родительских класса: класс Component, определяющий возможность элементам управления быть компонентами, и класс MarshalByRefObject, предоставляющий возможность передачи элементов управления по сети.
Класс Control определяет важные свойства, методы и события, которые наследуются всеми его потомками. Все классы элементов управления является наследниками класса Control. Класс Form также является одним из потомков класса Control.
Таким образом форма, по сути, это элемент управления со специальными свойствами. Являясь наследником классов ScrollableControl и ContainerControl, форма допускает прокрутку и размещение элементов управления.
Современный инструментарий разработки программных систем, реализованный в Microsoft Visual Studio, предоставляет возможности создавать собственные элементы управления и размещать их на формах вместе со встроенными элементами.
Как пример можно привести технологию ASP .NET. Значительное количество фирм специализируются на создании элементов управления, как одного из видов повторно используемых программных компонентов.
Последнее обновление: 25.11.2023
Для создания графических приложений на C# можно использовать .NET CLI, но также можно
использовать бесплатную и полнофункциональную среду разработки — Visual Studio Community 2022, которая в ряде случаев облегчает проектирование
приложения. Так, загрузим установщик Visual Studio по адресу:
https://www.visualstudio.com/en-us/downloads.
Чтобы добавить в Visual Studio поддержку проектов для Windows Forms и C# и .NET, в программе установки среди рабочих нагрузок нужно
выбрать только пункт Разработка классических приложений .NET. Можно выбрать и больше опций или вообще все опции, однако стоит
учитывать свободный размер на жестком диске — чем больше опций будет выбрано, соответственно тем больше места на диске будет занято.
После установки среды и всех ее компонентов, запустим Visual Studio и создадим проект графического приложения.
На стартовом экране выберем Create a new project (Создать новый проект)
На следующем окне в качестве типа проекта выберем Windows Forms App:
Стоит отметить, что среди шаблонов можно увидеть еще тип Windows Forms App (.NET Framework) — его НЕ надо выбирать, необходим именно тип
Windows Forms App.
Далее на следующем этапе нам будет предложено указать имя проекта и каталог, где будет располагаться проект.
В поле Project Name дадим проекту какое-либо название. В моем случае это HelloApp.
На следующем окне Visual Studio предложит нам выбрать версию .NET, которая будет использоваться для проекта. Выберем последнюю на данный момент версию — .NET и нажмен на кнопку Create (Создать) для создания проекта.
После этого Visual Studio откроет наш проект с созданными по умолчанию файлами:
Справа находится окно Solution Explorer, в котором можно увидеть структуру нашего проекта. Практически этот тот же проект, который создается с
помощью .NET CLI:
-
Dependencies — это узел содержит сборки dll, которые добавлены в проект по умолчанию.
Эти сборки как раз содержат классы библиотеки .NET, которые будет использовать C# -
Form1.Designer.cs: он содержит определение компонентов формы, добавленных
на форму в графическом дизайнере -
Далее идет файл единственной в проекте формы — Form1.cs, который по умолчанию открыт в центральном окне.
-
Program.cs определяет точку входа в приложение
Запуск приложения
Чтобы запустить приложение в режиме отладки, нажмем на клавишу F5 или на зеленую стрелочку на панели Visual Studio.
После этого запустится пустая форма Form1 по умолчанию.
После запуска приложения студия компилирует его в файл с расширением exe. Найти данный файл можно, зайдя в папку проекта и далее в каталог
\bin\Debug\net8.0-windows
Рассмотрев вкратце создание проекта графического приложения, мы можем перейти к обзору основных компонентов и начнем мы с форм.