* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Подключение класса DoughnutMachine к пользовательскому интерфейсу
8 февраля 2009

Сейчас вы добавите к классу frmMain код для создания экземпляра класса
DoughnutMachine, выпекаюшего пончики для виртуального магазина, а
также код для выбора сорта пончиков и метод, обрабатывающий событие
DoughnutComplete, генерируемое компонентом DoughnutMachine. Наконец,
вы добавите метод, останавливающий производство пончиков.
1. Объявите на уровне класса переменную, представляющую экземпляр компонен-
та DoughnutMachine:
Visual Basic .NET
Private myDoughnutMachine As DoughnutMachine
Visual C#
private DoughnutMachine myDoughnutMachine;
2. Напишите обработчик события frmMain_Load, который создает экземпляр клас-
са DoughnutMachine и помещает его в переменную myDoughnutMachine. Вот при-
мерный код такого обработчика
Visual Basic .NET
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As
System. EventArgs) Handles MyBase.LoacI
myDoughnutMachine = New DoughnutMachine()
End Sub
Visual C#
private void frmMain_Load(object sender. System.EventArgs e)
1
myDoughnutMachine = new DougnnutMachineO;
}
3. Объявите закрытые переменные для учета количества пончиков:
Visual Basic .NET
Private mRaisedGlazed As Integer
Private mRaisedSugar As Integer
Private mRaisedChocolate As Integer
Private mCakePlain As Integer
Private mCakeChocolate As Integer
Private mCakeSugar As Integer
Private mFilledLemon As Integer
Private mFilledGrape As Integer
Private mFilledCustard As Integer
Visual C#
private int mRaisedGlazed;
private int mRaisedSugar;
private int mRaisedChocolate;
private int rnCakePlain;
private int mCakeChocolate;
private int mCakeSugar;
private int mFilledLemon;
private int mFilledGrape;
private int mFilledCustard;
4. Создайте для элемента Make из меню Doughnuts вложенные элементы Raised,
Cake и Filled, присвоив им внутренние имена mnuRaised, mnuCake и mnuFilled
соответственно. Для элемента Raised создайте вложенные элементы Glazed,
Sugar и Chocolate, задав для них имена mnuRaisedGlazed, tnnuRaisedSugar и mnu-
Raised Chocolate. Вид готового меню в окне дизайнера показан на рис. 3-1.
5. Добавьте к обработчику события Click элемента меню mnuRaisedGlazed код, вы-
зывающий метод DoughtnutMachine.MakeDoughnut с параметром, определяющим
сорт пончика. Этот код также должен устанавливать свойство Checked элемента
меню mnuRaisedGlazed в true, а аналогичные свойства пунктов mnuRaisedSugar и
mnuRaisedChocolate — в false. Вот этот код:
Visual Basic .NET
Private Sub mnuRaisedGlazed_Click(ByVal sender As
System.Object, ByVal e
As System.EventArgs) Handles mnuRaisedGlazed.Click
mnuRaisedGlazed.Checked = True
mnuRaisedSugar.Checked - False
mnuRaisedChocolate.Checked = False
Visual C#
private void mnuRaisedGlazed_Click(object sender,
System. EventArgs e)
{
mnuRaisedGlazed. Checked - true;
mnuRaisedSugar. Checked - false;
mnuRaisedChocolate. Checked = ^alse;
[TiyDoughnutMachine.MakeDoughnutsCDoughnutMachine.DoughnutType. Glazed);
Напишите аналогичные методы для элементов меню тпи Raised Sugar и mnuRaisedChocolate.
6. Создайте метод, обрабатывающий событие DoughnutCompiete, которое генериру-
ет объект myDoughnutMachine. Обработчик этого события должен увеличить на
единицу переменную для учета готовых пончиков данного сорта и записать ее
текущее значение а соответствующее текстовое поле. Вот пример реализации
обработчика:
Visual Basic .NET
Private Sub DoughnijtCompleteHandler()
Select Case rnyDoughnutMachine.Flavor
Case DoughnutMachine.DoughnntType.Glazed
mRaisedGlazed += 1
txtGlazedRaised.Text = mRaisedGlazed.ToString
Case DoughnutMachine.DoughnutType.Sugar
mRaisedSugar += 1
txtSugarRaised.Text = mRaisedSugar. ToString
Case DoughnutMachine. DoughnutType. Chocolate
TiRaisedChocolate += 1
txtChocolateRaised.Text - roRaisedChocolate.ToString
End Select
End Sub
Visual C#
orivate void DoughnutCompleteHandlerO
{
switch (diyDoughnutMachine. Flavor)
{
case DoughnutMachine. DoughnutType. Glazed:
uRaisedGlazed ++;
txtGlazedRaised.Text = mRaisedGlazed.ToStringO;
break;
case DoughnutMachine. DoughnutType. Sugar :
mRaisedSugar ++;
txtSugarRaised.Text - mRaisedSugar. ToStringO;
break;
case DoughnutMachine. DoughnutType. Chocolate:
nRaisedChocolate ++;
txtChocolateRaised.Text - mRaisedChocolate. ToStringO;
areak;
7. Добавьте к обработчику события Forml_Load следующий код, связывающий об-
работчик события Doughnut Complete, созданный ранее, с событием myDoughnut-
Machine. Doughnut Complete:
Visual Basic .NET
AddHandler nyDoughnutMachine. DoughnutComplete, AddressOf
DoughnutCompleteHandler
Visual C#
rnyDoughnutMacnine. DoughnutComplete += new DoughnutMachine. Doughnut-
CompleteDelegate( DoughnutCompleteHandler };
8. Добавьте к меню Doughnuts элемент, назовите его &Stop, присвойте ему внут-
реннее имя mnuStop и напишите обработчик события Click для этого пункта
меню, устанавливающий свойство Enabled объекта my Doughnut Machine sfalst1. Вот
примерный код этого обработчика:
Visual Basic .NET
Private Sub mnuStop__Click(ByVal sender As System. Object, ByVal e
As System. EventArgs) Handles rnnStop. Click
rnyDoughnutMachine. Enabled = False
End Sub
Visual C#
private void mnuStop_Click(ou]ect sender, System.EventArgs e)
{
uiyDoughnutMachine. Enabled = false;
}
9. Скомпонуйте и сохраните решение.
10. Нажмите F5, чтобы запустить приложение и проверить, как оно работает.
И. В меню Doughnuts выберите элемент Raised, затем Sugar. Убедитесь, что элемент
Sugar помечен флажком. Каждые восемь секунд значение текстового поля Raised
Sugar должно увеличиваться на единицу. Выполните те же самые действия в
меню Glazed — соответствующее текстовое поле будет увеличиваться каждые 10
секунд; а период обновления поля, соответствующего сорту Chocolate, составит
15 секунд.
12. В меню Doughnuts выберите команду Stop, чтоб закончить «выпечку» пончиков.
Закрепление материала
~~л~"1 Приведенные ниже вопросы помогут вам лучше усвоить основные темы
данной главы. Если вы не сумеете ответить на вопрос, повторите матери-
\
ал соответствующего занятия. Ответы для самопроверки — в приложении
«Вопросы и ответы» в конце книги.
1. Объясните, в каких случаях преобразование типов выполняется неяв-
но, а в каких — явно. В чем опасность явного преобразования типов?
2. Почему вместо значений лучше использовать в коде перечисления и
константы?
3. Кратко опишите сходства и различия между массивами и наборами.
4. Чем свойства отличаются от полей? Почему для представления досту-
па к открытым данным лучше применять свойства^ а не поля?
5. Объясните, что такое делегат, и расскажите, как он работает.

Теги: .NET

Статьи по теме:

Doxygen – версия 1.5.7
Модификаторы доступа для вложенных типов
Создание дополнительных типов объектов Doughnut
Редактор пользовательского интерфейса
Перечисления CTS
Лямбда-выражения
Свойства, доступные только для чтения или только для записи
Извлечение из сопутствующих сборок ресурсов, специфичных для культуры
Активация и деактивация команд меню
Принципы создания элементов управления
Применение объекта DataReader
Интерфейсы CTS
Оптимизация приложений
Объекты и члены
Работа с фокусом ввода
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Подключение класса DoughnutMachine к пользовательскому интерфейсу. Регион сайта: Москва и Санкт-Петербург