Программирование >>  Web ориентированные приложения 

[ 1 ] 2 3 4 ... 16


Web-ориентированные приложения

Платформа .NET Framework позволяет разрабатывать интеллектуальные клиентские приложения с богатыми возможностями, при этом избегая проблем с развертыванием и DLL-адом , как это было раньше. Независимо от того, что будет выбрано - Windows Forms или Windows Presentation Foundation (см. главу 34) - разработка или развертывание клиентских приложений теперь не представляет особой сложности.

Windows Forms уже оказал влияние на разработки для Windows. Теперь, когда приложение находится на начальной стадии проектирования, принять решение о том, нужно ли строить Web-ориентированное приложение либо же полностью клиентское, стало немного труднее. Клиентские приложения Windows могут быть разработаны быстро и эффективно, при этом они предлагают пользователям гораздо более широкие возможности.

Windows Forms покажется вам знакомым, если у вас есть опыт разработки на Visual Basic. Вы создаете новые формы (также известные как окна или диалоги) в той же манере - перетаскивая и размещая элементы управления из панели инструментов на поверхность визуального дизайнера форм (Form Designer). Однако если ваш опыт в основном касается классического стиля языка C для Windows-программирования, где приходилось создавать конвейеры сообщений и отслеживать эти сообщения, или же если вы - программист, применяющий MFC, то в этом случае вы обнаружите, что и здесь при необходимости у вас есть возможность работать с низкоуровневыми деталями. Вы можете переопределить оконную процедуру (WndProc) и перехват1вать сообщения, но в действительности вас удивит, что делать это придется нечасто.

В этой главе мы рассмотрим следующие аспекта: Windows Forms:

□ класс Form;

□ иерархия классов Windows Forms;

□ элементы управления и компоненты, являющиеся частью пространства имен System.Windows.Forms;

□ меню и панели инструментов;

□ создание элементов управления;

□ создание пользовательских элементов управления.



Создание приложения Windows Forms

Первое, что необходимо сделать - создать приложение Windows Forms. Для примера создадим пустую форму и отобразим ее на экране. При разработке этого примера мы не будем использовать Visual Studio .NET. Наберем его в текстовом редакторе и соберем с помощью компилятора командной строки. Ниже показан код примера.

using System;

using System.Windows.Forms; namespace NotepadForms {

public class MyForm : System.Windows.Forms.Form

public MyForm()

[STAThread] static void Main()

Application.Run(new MyForm());

Когда мы скомпилируем и запустим этот пример, то получим маленькую пустую форму без заголовка. Никаких реальных функций, но это - Windows Forms.

В приведенном коде заслуживают внимания две вещи. Первая - тот факт, что при создании класса MyForm используется наследование. Следующая строка объявляет MyForm как наследника System.Windows.Forms.Form:

public class MyForm : System.Windows.Forms.Form

Класс Form - один из главных классов в пространстве имен System.Windows.Forms. Следующий фрагмент кода стоит рассмотреть более подробно:

[STAThread] static void Main() {

Application.Run(new MyForm());

Main - точка входа по умолчанию в любое клиентское приложение на C#. Как правило, в более крупных приложениях метод Main() не будет находиться в классе формы, а скорее в классе, отвечающем за процесс запуска. В данном случае вы должны установить имя такого запускающего класса в диалоговом окне свойств проекта. Обратите внимание на атрибут [STAThread]. Он устанавливает модель многопоточности COM в STA (однопоточный апартамент). Модель многопоточности STA требуется для взаимодействия с COM и устанавливается по умолчанию в каждом проекте Windows Forms.

Метод Application.Run() отвечает за запуск стандартного цикла сообщений приложения. Application.Run() имеет три перегрузки.

Первая из них не принимает параметров; вторая принимает в качестве параметра объект ApplicationContext. В нашем примере объект MyForm становится главной формой приложения. Это означает, что когда форма закрывается, то приложение завершается. Используя класс ApplicationContext, можно в большей степени контролировать завершение главного цикла сообщений и выход из приложения.



Класс Application содержит в себе очень полезную функциональность. Он предоставляет группу статических методов и свойств для управления процессом запуска и останова приложения, а также обеспечивает доступ к сообщениям Windows, обра-бат1ваемым приложением. В табл. 31.1 перечислены некоторые из этих наиболее полезных методов и свойств.

Таблица 31.1. Некоторые полезные методы и свойства класса Application

Метод/свойство

Описание

CommonAppDataPath

ExecutablePath LocalUserAppDataPath

MessageLoop

StartupPath

AddMessageFilter

DoEvents

EnableVisualStyles Exit и ExitThread

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

это Базов]йПуть\Название компании\Название продукта\Версия, где Базов]йПуть - C:\Documents and Settings\имя пользователя\ ApplicationData. Если путь не существует, он будет создан.

Путь и имя исполняемого файла, запускающего приложение.

Подобно CommonAppDataPath, но с тем отличием, что поддерживается роуминг (перемещаемость).

True или false - в зависимости от того, существует ли цикл сообщений в текущем потоке.

Подобно ExecutablePath, с тем отличием, что имя файла не возвращается.

Используется для предварительной обработки сообщений. Объект, реализующий IMessageFilter, позволяет фильтровать сообщения в цикле или организовать специальную обработку, выполняемую перед тем, как сообщение попадет в цикл.

Аналогично оператору DoEvents языка Visual Basic. Позволяет обработать сообщения в очереди.

Обеспечивает визуальный стиль Windows XP для различных визуальных элементов приложения. Существуют две перегрузки, принимающие информацию манифеста. Одна работает с потоком манифеста, вторая - принимает полное имя и путь файла манифеста.

Exit завершает текущий работающий цикл сообщений и вызывает выход из приложения. ExitThread завершает цикл сообщений и закрывает все окна текущего потока.

А теперь как будет выглядеть это приложение, если его сгенерировать в Visual Studio 2008? Первое, что следует отметить - будет создано два файла. Причина в том, что Visual Studio 2008 использует возможность частичных (partial) классов и выделяет весь код, сгенерированный визуальным дизайнером, в отдельный файл. Если используется имя по умолчанию - Form1, то эти два файла будет называться Form1.cs и Form1.Designer.cs. Если только у вас не включена опция Show All Files (Показать все файлы) в меню Project (Проект), то вы не увидите в проводнике Solution Explorer файла Form1.Designer.cs. Ниже показан код этих двух файлов, сгенерированных Visual Studio. Сначала - Form1.cs:

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;



[ 1 ] 2 3 4 ... 16

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика