Сейчас мы покажем, как работает свойство CausesValidation класса Control. По умолчанию оно равно true для всех элементов управления на форме. Это означает, что перед тем как передать фокус в рассматриваемый элемент, данные формы проходят валидацию (нет-ли ошибок?). Фокус не переходит в элемент, если есть нарушения. Мы хотим закрыть окно кнопкой bExit. По умолчанию ее свойство CausesValidation==true и нам не удастся с ее помощью закрыть окно, несмотря на то, что мы добавим реакцию на нажатие этой кнопки и вызовем в ней метод Close для нашей формы. Это реализуется так.
¨ Добавьте анонимный делегат на событие Click кнопки bExit.
bExit.Click += delegate { Close (); };
¨ Убедитесь, что при наличии ошибок ввода в поле tPrice закрыть окно кнопкой bExit не удается, но если ошибок нет, то кнопка работает.
¨ Установите свойство CausesValidation в false и повторите опыт.
bExit.CausesValidation = false;
Теперь форма не протестует, так как попытка перевести фокус в кнопку bExit не запускает механизм валидации данных. Чтобы быть точным, добавлю, что форма-то протестует против своего закрытия (см. параметр e.Cancel==true внутри реакции на FormClosing), но мы игнорируем ее протест и насильно скрываем (Hide) форму (не уничтожая ее, то есть, не позволяя вызвать Dispose). Вспомните, так было решено на начальном этапе разработки проекта.
¨ Измените значение свойства DataGridViewAutoSizeColumnsMode, как было показано ранее.
¨ Введите обработку события DataError.
В первом приближении Web Service — это механизм предоставления программной логики пользователям сети. Важным в этой технологии является то, что пользователю сети (потребителю Web-сервиса) не нужно устанавливать программный продукт на своей машине для того, чтобы пользоваться его услугами. Код Web-сервиса располагается на Web-сервере, который является надежным хранилищем и способен защитить важные данные или права автора Web-приложения. Пользователю Web-сервиса для работы с ним нужен лишь Web-browser или Windows-приложение, способное отобразить результаты запроса к Web-сервису.
Другим важным достоинством технологии .NET Web Services является то, что она использует протоколы обмена данных и описания услуг, построенными на основе технологии — XML. Напомним, что последняя появилась в феврале 1998 года и успешно внедряется на всех платформах, благодаря усилиям международной организации World Wide Web Consortium (W3C). Она не зависит от выбранного компанией типа операционной системы и от предпочитаемых ею (частных, proprietary) форматов данных.
Мы собираемся за несколько шагов разработать Windows-приложение, способное обратиться к Web-сервису и отобразить данные, полученные из якобы удаленного источника. На самом деле мы разработаем два проекта в рамках одного решения (Solution).
¨ Один проект с именем MyServices будет иметь тип ASP.NET Web-service Application. Результатом его компиляции является библиотека (DLL).
¨ Второй проект с именем OrdersClient имеет тип обычного Windows-приложения, пользующегося услугами XML Web-сервиса. Это клиентское приложение, размещенное в сборке типа EXE.
Представим, что на стороне клиента имеется XML-файл, в котором хранятся данные таблицы Customers —клиентов, делающих заказы продуктов в вымышленной компании NorthWind. Данные о заказах хранятся в самой компании, то есть, на удаленном сервере. Допустим, что сервер предоставляет своим клиентам информацию о сделанных ими заказах и эта услуга оформлена в виде Web-сервиса. Клиентское Windows-приложение предлагает пользователю выбрать строку в таблице клиентов и запускает при этом Web-сервис, который возвращает результат удаленного запроса к таблице заказов, соответствующих выбранному клиенту. Интерфейс приложения имеет следующий вид.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.