Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 213

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 207 208 209 210 211 212 < 213 > 214 215 216 217 218 219 .. 260 >> Следующая

Кроме того, в правый нижний угол формы приложения я добавил кнопку Close. В ее событии Click я вызываю метод Close формы, чтобы завершить работу приложения. Чтобы сделать то же самое в своем приложении, перетащите кнопку с панели инструментов, задайте ее свойству Name значение btnClose и свойству Text — значение Close. Дважды щелкните кнопку, чтобы просмотреть код обработки ее события Click. Дополните его следующими строками:
Visual Basic
Me.Close()
Visual С# .NET
this.CloseO;
494
Часть IV Создание эффективных приложений с использованием ADO.NET
Этап 4. Добавление кнопок для перемещения по содержимому объекта DataSet
На текущий момент приложение лишь отображает сведения о заказе. Можно добавить код, который проверяет значение свойства Count объекта ПаШТаЫе Orders из состава нашего объекта DataSet и сообщает, сколько возвращено записей. Приложение не очень-то полезно, если способно отображать лишь один заказ. Давайте реализуем функциональность, обеспечивающую просмотр числа возвращенных записей и перемещение между ними.
На форме приложения, под элементами управления с информацией о -w.k;i:,<¦. я добавил четыре кнопки и метку (рис. i i > Кнопки позволяют перемещаться по записям о заказах, а метка показывает текущий номер и общее число заказов.
X
.....¦...... ¦¦¦
Order да; ом:
Customer ID j&LFKI
Employe SO: 1 ......e 1
Order Dale
«<M Hi*,. i <: 6
Lbs*
Рис. 13-4. Добавление на форму элементов управления для перемещения по содержимому объекта DataSet
управления предоставляют данную функциональность при помощи экземпляра класса CurrencyManager. И хотя из имени класса следует, что он выступает в роли финансового консультанта, на самом деле именно этот класс обеспечивает функционирование связывания с данными. Windows-форма предоставляет свойство BindingContext, позволяющее обращаться к объектам CurrencyManager, которые контролируют связанные с данными управления формы.
Элементы управления TextBox связаны с одной записью объекта DataTable Orders. Чтобы сменить в этих элемента управления запись, изме-
ните значение свойства Position экземпляра класса CurrencyManager. Для перехода к следующей записи увеличьте значение свойства Position на единицу, а для перехода к предыдущей записи — уменьшите его аналогичным образом.
Вместо того чтобы объяснять назначение и место отдельных строк кода, я решил показать фрагмент кода приложения. Он включает переменную CurrencyManager уровня формы. Код процедуры, обрабатывающей событие Load формы, инициализирует эту переменную и добавляет обработчики событий ItemCbangedn Position-Changed объекта CurrencyManager. Процедуры обработки этих событий задают текст отображающей номер текущего заказа. Кроме того, есть процедуры, обрабатывающие событие Click различных кнопок и соответствующим образом задающие значение свойства Position объекта CurrencyManager.
ГЛАВА 13 Создание эффективных Windows-приложений
495
Visual Basic .NET
Переменная уровня формы Dim cmOrders As CurrencyManager
'Private Sub frmEditOrders_Load. . .
cmOrders = CType(BindingContext(dsChapter13, "Orders"),
CurrencyManager) AddHandler cmOrdera.ItemChanged, AddressOf cmOrders.ltenChanged AddHandler cmOrders.PositionChanged, AddressOf cmOrders_PositionChanged
DisplayOrdersPosition()
End Sub
Private Sub DisplayOrdersPositionO
lblOrdersPosition.Text = "Order " & cmOrders. Position + 1 & _ " of " & cmOrders.Count
End Sub
Private Sub otii0rders.ltemCri3nged{ByVal sender As Object,
iByVal e As ItemChangedEventArgs)
DisplayOrdersPositionO
End Sub
Private Sub cm0reers_PositicnChanged(8yVal sender As Object,
ByVal e As System.EventArgs)
DisplayOrdersPositionO
End Sub
Private Sub btnOrdersMoveFlrst.Click.. .
cmOrders.Position = 0 End Sub
Private Sub btnOrdersHovePrevious_Click...
cmOrders.Position -= 1 End Sub
Private Sub btnOrdersMoveNext.Click. ..
cmOrders.Position += 1 End Sub
Private Sub btnOrdersMoveLast_Click. .
= - 1
End Sub
Visual C# .NET
//Переменна?^ уровня формы CurrencyManagercmOrders;
private void fmiEditOrders.Load. ,
496 Часть IV Создание эффективных приложений с использованием ADO- NET
i
cmOrclers = (CurrencyManager) BindingContext[dsChapteM3, "Orders"]; ciOrders-ItanCrisntied +=
new ItemCiianyedEventHandler(craOrders_lt8inChanged); cmOrders. PositionCrtanged += new EventHaiidler(cmOrders..FositionCh3nged): DisplayOrdersPosition();
!
private void DisplayOrdersPositionO !
lblOrdersPosition.Text = "Order " + (cmOrders.Position + 1} + " of " + cmOrders, Count;
I
private void GinOrdersJtemCriangedlobiect sender, ItemCnarigedEventArgs e) i
IDisplayOrdersPositionf);
}
private void cn;0rder3..PositionChangea(object sender, EventArgs e)
i
DisplayOrdersPositionO;
}
private void sender, e)
{
cmOrders. Position = 0;
}
private void sender, e)
{
cmOrders.Position-;
}
private void sender, e)
<
cmOrders.Positlon++;
f
private void sender, e)
{
cmOrders. Position = crr.Q-csers. Count - 1;
;-
Этап 5. Добавление кнопок Add и Delete
Теперь пользователь получил возможность нрис\'1-зтрпьат1> все записи о заказах, возвращенные объектом nataAilttpU"- а также изменять состав заказа, редактируя содержимое связанных элементов управления TextBox.
Предыдущая << 1 .. 207 208 209 210 211 212 < 213 > 214 215 216 217 218 219 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100