Виды проектов Visual Studio.Net 2012 предлагает различные шаблоны для ваших начальных проектов. Основные поддерживаемые языки программирования: С#, C++,

Презентация:



Advertisements
Похожие презентации
Программирование на Visual Basic Автор Волков Ф.Л.
Advertisements

©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Начальные сведения по созданию проекта Разработал учитель информатики МБОУ СОШ 50 г. Краснодара Ракута Елизавета Григорьевна « Не бойся, что не знаешь,
Высокоуровневые методы информатики и программирования Лекция 10 События.
©Павловская Т.А. (СПбГУ ИТМО) 1 Расчет рейтинга по модулю 4 вид учебной нагрузки баллы minmax Выполнение и защита лаб. раб. (2 штуки) 6 * 2 шт10 * 2 шт.
Создание оконных приложений в.NET Автор: Хайдуков Дмитрий Сергеевич.
Разработчики: Михин Павел, Шильникова Виктория, Субботина Елена, Чучмина Елена. Научный руководитель: Соломатин Д.И. HTML-Remaking.
Диалоги ShowDialogСоздает модальный диалог. После вызова ShowDialog следующий оператор не выполняется пока не произойдет выход из метода. Пока не закрыт.
ВВЕДЕНИЕ В WINFORMS Лекция 1. Устройство Windows-приложения Оконнная функция Окно Цикл обработки сообщений OS Windows Программа создает окно и присоединяет.
Презентаци ю подготовил ученик 9 класса «Г» Рощин Витали й Введение в объектно- ориентированный язык программирования Visual Basic Учитель информатики.
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
ФИЛОСОФИЯ.NET Любому современному программисту, который желает идти в ногу с последними веяниями, каждые несколько лет приходится переучиваться.
Лекция 2: Описание класса 1. Поля 2. Методы 3. Конструкторы.
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Версия для Microsoft Visual C#. Создание проекта. 1.
Урок информатики 10 класс Тема «Размещение текстовой информации на форме при помощи управляющих элементов» Учитель информатики МБОУ ОСОШ 1 Фирсов А.Н.
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
Windows forms. Объявление события public delegate void SampleEventDelegate(object Sender, string e); public event SampleEventDelegate SampleEvent; public.
СОБЫТИЯ Лекция 1. Взаимодействие объектов 2 Взаимодействие между объектами A и B можно организовать двумя способами. 1.Объект A вызывает метод объекта.
Транксрипт:

Виды проектов Visual Studio.Net 2012 предлагает различные шаблоны для ваших начальных проектов. Основные поддерживаемые языки программирования: С#, C++, F#, Visual Basic

Нас интересуют шаблоны для программирования на С# в среде Windows

Сейчас нас интересует два вида шаблонов для С#: Консольное приложение Приложение Windows Forms Давайте разберемся, как создаются проекты и что они изначально собой представляют. С точки зрения программиста, компилятор создает решение, с точки зрения CLR - сборку, содержащую PE-файл. Программист работает с решением, CLR - со сборкой.

Решение содержит один или несколько проектов, ресурсы, необходимые этим проектам, и возможно, дополнительные файлы, не входящие в проекты. Один из проектов решения должен быть выделен и назначен стартовым проектом. Выполнение решения начинается со стартового проекта. Проекты одного решения могут быть зависимыми или независимыми. Например, все проекты одной лекции могут быть для удобства собраны в одном решении и иметь общие свойства. Изменяя стартовый проект, получаем возможность перехода к нужному примеру. Стартовый проект должен иметь точку входа - класс, содержащий статическую процедуру с именем Main( ), которой автоматически передается управление в момент запуска решения на выполнение.

В уже имеющееся решение можно добавлять как новые, так и существующие проекты. Один и тот же проект может входить в несколько решений. Проект состоит из классов, собранных в одном или нескольких пространствах имен. Пространства имен позволяют структурировать проекты, содержащие большое число классов, объединяя в одну группу близкие классы. Если над проектом работает несколько исполнителей, то, как правило, каждый из них создает свое пространство имен. Помимо структуризации, это дает возможность присваивать классам имена, не задумываясь об их уникальности. В разных пространствах имен могут существовать одноименные классы. Проект - это основная единица, с которой работает программист. Он выбирает тип проекта, а Visual Studio создает скелет проекта в соответствии с выбранным типом.

Консольный проект Если установить вид проекта – консольное приложение, то компилятор создаст решение (Solution ConsoleApplication1). Решение, естественно, имеет один проект В нижней части - имя проекта и решения и где он будет размещаться

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

Предложение using NameA облегчает запись при использовании классов, входящих в пространство NameA, поскольку в этом случае не требуется каждый раз задавать полное имя класса с указанием имени пространства, содержащего этот класс. Слегка изменим проект: using System; namespace Rab1 { class Program { static void Main(string[ ] args) { Console.WriteLine("Введите Ваше имя"); string name; name = Console.ReadLine( ) ; if (name == "") Console.WriteLine("Здравствуй, мир!"); else Console.WriteLine("Здравствуй, " + name + "!"); Console.WriteLine("Stop"); Console.ReadLine( ); } Если запустить исполняемый файл проекта ConsoleApplication1.exe

Windows-проект Если установить вид проекта – Приложение Windows Forms

После запуска будут сгенерированы следующие файлы С#: Program.cs Form1.cs Form1.designer.cs

Сгенерируется код программы (Program.cs): using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication3 { static class Program { /// /// Главная точка входа для приложения. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }

Процедура Main( ) содержит строчку Application.Run(new Form1( )); Класс Application из пространства имен System.Windows.Forms вызывает статический метод Run, которому в качестве фактического аргумента передается объектное выражение new Form1( ). При вычислении этого выражения создается объект - экземпляр класса Form1. Для создания объекта вызывается конструктор класса.

Файл Form1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace rab2 { public partial class Form1 : Form // partial – позволяет определить класс в различных файлах { public Form1( ) { InitializeComponent( ); } В классе есть конструктор, вызывающий закрытый метод класса InitializeComponent(), который описан в файле Form1.designer.cs

namespace WindowsFormsApplication3 { partial class Form1 { /// /// Требуется переменная конструктора. /// private System.ComponentModel.IContainer components = null; /// /// Освободить все используемые ресурсы. /// /// истинно, если управляемый ресурс должен быть удален; иначе ложно. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Код, автоматически созданный конструктором форм Windows /// /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Text = "Form1"; } #endregion }

Построенный по умолчанию класс Form1 является наследником класса Form и автоматически наследует его функциональность - свойства, методы, события. При создании объекта этого класса, характеризующего форму, одновременно Visual Studio создает визуальный образ объекта - окно, которое можно заселять элементами управления. В режиме проектирования эти операции можно выполнять вручную, при этом автоматически происходит изменение программного кода класса. Появление в проектe формы, открывающейся по умолчанию при запуске, означает переход к визуальному, управляемому событиями программированию. Сегодня такой стиль является общепризнанным, а стиль консольного приложения следует считать анахронизмом, правда, весьма полезным при изучении свойств языка.

Проект WindowsHello Создадим проект в стиле Windows. Для этого модифицируем файл Form1.cs с помощью средств визуального конструирования (переключим из View (Вид) -> Code (Код) в View -> Designer (Конструктор)) Подключим панель Toolbox (View -> Toolbox (Панель элементов))

Добавим в форму следующие элементы управления: текстовое окно и метку (TextBox и Label). По умолчанию они получат имена textBox1 и label1. Текстовое окно предназначается для ввода имени пользователя, метка, визуально связанная с окном, позволит указать назначение текстового окна. Можно установить свойство Multiline для текстового окна как true, свойство Text у метки - Ваше Имя;

Можно установить свойство Multiline для текстового окна как true, свойство Text у метки - Ваше имя:

аналогичная пара элементов управления - textBox2 и label2 - предназначены для вывода приветствия. Поскольку окно textBox2 предназначено для вывода, то включаем его свойство ReadOnly; Добавим командную кнопку (Button), обработчик события Click которой и будет организовывать чтение имени пользователя из окна textBox1 и вывод приветствия в окно textBox2.

Теперь надо задать обработчик события. Это можно делать по-разному. Есть стандартный способ включения событий. Достаточно выделить нужный элемент в форме, в окне свойств нажать кнопку событий (со значком молнии) и из списка событий выбрать нужное событие и щелкнуть по нему. В данной ситуации все можно сделать проще - двойной щелчок по кнопке включает событие, и автоматически строится заготовка обработчика события с нужным именем и параметрами. private void button1_Click(object sender,System.EventArgs e) { string temp; temp = textBox1.Text; if( temp == "") textBox2.Text = "Здравствуй, мир!"; else textBox2.Text = "Здравствуй, " + temp + " !"; } private void button1_Click(object sender, EventArgs e) { } Напишем код обработки

Файл Program.cs не изменился. Файл Form1.designer.cs : namespace WindowsFormsApplication3 { partial class Form1 { /// /// Требуется переменная конструктора. /// private System.ComponentModel.IContainer components = null; /// /// Освободить все используемые ресурсы. /// /// истинно, если управляемый ресурс должен быть удален; иначе ложно. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); }

#region Код, автоматически созданный конструктором форм Windows /// /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(28, 33); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(60, 13); this.label1.TabIndex = 0; this.label1.Text = "Ваше имя:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(99, 33); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(100, 20); this.textBox1.TabIndex = 1; //

// label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(28, 81); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(44, 13); this.label2.TabIndex = 2; this.label2.Text = "Привет"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(99, 78); this.textBox2.Name = "textBox2"; this.textBox2.ReadOnly = true; this.textBox2.Size = new System.Drawing.Size(100, 20); this.textBox2.TabIndex = 3; // // button1 // this.button1.Location = new System.Drawing.Point(278, 55); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 4; this.button1.Text = "Привет"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click);

// // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(461, 273); this.Controls.Add(this.button1); this.Controls.Add(this.textBox2); this.Controls.Add(this.label2); this.Controls.Add(this.textBox1); this.Controls.Add(this.label1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.Button button1; }

Файл Form1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string temp; temp = textBox1.Text; if (temp == "") textBox2.Text = "Здравствуй Мир!"; else textBox2.Text = "Здравствуй" + temp + "!"; }

Программа на языке C# может состоять из одного или нескольких файлов. Каждый файл может содержать ноль или более пространств имен. Пространство имен может включать такие элементы, как классы, структуры, интерфейсы, перечисления и делегаты, а также другие пространства имен. Ниже приведена скелетная структура программы C#, содержащая все указанные элементы. // A skeleton of a C# program using System; namespace YourNamespace { class YourClass { } struct YourStruct { } interface IYourInterface { } delegate int YourDelegate(); enum YourEnum { } namespace YourNestedNamespace { struct YourStruct { } } class YourMainClass { static void Main(string[] args) { //Your program starts here... } }