Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Название:ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2007
- Город:Москва • Санкт-Петербург • Киев
- ISBN:ISBN 5-8459-1124-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Замечание. В этой главе мы используем новое, рекомендуемое сегодня множество элементов управления пользовательского интерфейса. Чтобы получить информацию, необходимую для работы с устаревшими типами MainMenu, Statusbar и другими аналогичными им типами, обратитесь к документации .NET Framework 2.0 SDK.
Анализ проекта Windows Forms в Visual Studio 2005
Любой тип Form проекта Windows Forms в Visual Studio 2005 представлен двумя связанными C#-файлами, в чем можно убедиться непосредственно, заглянув в окно Solution Explorer (рис. 19.10).

Рис. 19.10. Каждая форма является композицией двух файлов *.cs
Щелкните правой кнопкой мыши на пиктограмме Form1.cs и в появившемся контекстном меню выберите View Code (Просмотр программного кода). Вы увидите программный код парциального класса, содержащего обработчики событий формы, конструкторы, переопределения и другие члены созданного вами класса (заметьте, что здесь имя исходного класса Form1 было изменено на MainWindow с помощью выбора Rename из меню Refactor).
namespace MyVisualStudioWinApp {
public partial class MainWindow: Form {
public MainWindow() {
InitializeComponent();
}
}
}
Конструктор, заданный формой по умолчанию, вызывает метод InitializeComponent(), определенный в соответствующем файле *.Designer.cs. Этот метод создается в Visual Studio 2005 автоматически, и в нем автоматически отражаются все модификации выполняемые вами в окне проектирования формы.
Для примера перейдите снова на вкладку окна проектирования формы и найдите свойство Text в окне свойств. Укажите для этого свойства новое значение (например, Мое тестовое окно). Теперь откройте файл Form1.Designer.cs и убедитесь в том, что метод InitializeComponent() соответствующим образом изменен.
private void InitializeComponent() {
…
this.Text = "Мое тестовое окно";
}
Кроме поддержки InitializeComponent(), файл *.Designer.cs определяет члены-переменные, представляющие элементы управления, размещенные в окне проектирования формы. Снова для примера перетащите элемент управления Button (Кнопка) в окно проектирования формы. В окне свойств с помощью свойства Name измените имя соответствующей переменной с button1 на btnTestButton.
Замечание. Всегда лучше переименовать размещаемый элемент управления, перед тем как программировать обработку событий. Если этого не сделать, вы получите целый набор обработчиков событий с неинформативными именами наподобие button27_Click, поскольку при создании соответствующего имени по умолчанию к имени элемента просто добавляется суффикс в виде порядкового номера переменной.
Обработка событий в режиме проектирования
Обратите внимание на то, что в окне свойств есть кнопка с изображением молнии. Вы, конечно, можете вручную создать программный код, обеспечивающий обработку событий уровня формы, (как это было сделано в предыдущих примерах), но эта кнопка позволяет обработать событие для данного элемента управления "визуально". Из раскрывающегося списка (вверху окна свойств) выберите элемент управления, который должен взаимoдeйствoвaть с формой, найдите событие, которое вы хотите обработать, и напечатайте имя, которое должно использоваться для обработчика события (или выполните двойной щелчок на имени события, чтобы сгенерировать типовое имя в виде ИмяЭлемента_ИмяСобытия).
Если задать обработку события Click для элемента управления Button, в файле Form1.cs появится следующий обработчик событий.
public partial class MainWindow: Form {
public MainWindow {
InitializeComponent();
}
private void btnButtonTest_Click(object sender, EventArgs e) {}
}
Файл Form1.Designer.cs будет содержать необходимую инфраструктуру и описание соответствующего члена-переменной.
partial class MainWindow {
…
private void InitializeComponent() {
…
this.btnButtonTest.Click += new System.EventHandler(this.btnButtonTest_Click);
}
private System.Windows.Forms.Button btnButtonTest;
}
Замечание. Каждый элемент управлении имеет свое событие по умолчанию, которое будет обработано при двойном щелчке на этом элементе управления в окне проектирования формы. Например, событием по умолчанию для формы является Load, так что если выполнить двойной щелчок, поместив указатель мыши на тип Form среда разработки автоматически запишет программный код для обработки именно этого события.
Класс Program
Кроме файлов, связанных с формой, Windows-приложение Visual Studio 2005 определяет еще один класс, представляющий объект приложения (т.е. тип, определяющий метод Main()). Обратите внимание на то, что в следующем методе Main() вызывается Application.EnableVisualStyles(), а также Application.Run().
static class Program {
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.Run(new MainWindow());
}
}
Замечание.Атрибут [STAThread] дает среде CLR указание обрабатывать все устаревшие COM-объекты (включая элементы управления ActiveX), используя STA-управление (SingleThreaded Apartment – однопоточное размещение). Если вы имеете опыт использования COM, вы должны знать, что STA-управление используется для того, чтобы доступ к COM-типу выполнялся в синхронном (а значит, безопасном в отношении потоков) режиме.
Необходимые компоновочные блоки
Наконец, если Заглянуть в окно Solution Explorer, вы увидите, что проект Windows Forms автоматически ссылается на целый ряд компоновочных блоков, среди которых будут System.Windows.Forms.dll и System.Drawing.dll.
Напомним, что подробное обсуждение System.Drawing.dll предполагается в следующей главе.
Работа с MenuStrip и ContextMenuStrip
В рамках платформы .NET 2.0 рекомендуемым элементом управления для создания системы меню является MenuStrip. Этот элемент управления позволяет создавать как "обычные" пункты меню, такие как Файл→Выход, так и пункты меню, представляющие собой любые подходящие элементы управления. Вот некоторые общие элементы интерфейса, которые могут содержаться в MenuStrip.
• ToolStripMenuItem – традиционный пункт меню.
• ToolStripComboBox – встроенный элемент ComboBox (комбинированное окно).
• ToolStripSeparator – простая линия, разделяющая содержимое.
• ToolStripTextBox – встроенный элемент TextBox (текстовое окно).
С точки зрения программиста, элемент управления MenuStrip содержит строго типизированную коллекцию ToolStripItemCollection. Подобно другим типам коллекции, этот объект поддерживает методы Add(), AddRange(), Remove() и свойство Count. Эта коллекция обычно заполняется не напрямую, а с помощью различных инструментов режима проектирования, но если требуется, то есть возможность обработать ее и вручную.
Чтобы привести пример использования элемента управления MenuStrip, создайте новое приложение Windows Forms с именем MenuStripApp. Поместите элемент управления MenuStrip в форму в окне проектирования, присвоив ему имя mainMenuStrip. В результате в файл *.Designer.cs добавится новая переменная.
Читать дальшеИнтервал:
Закладка: