Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 367

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 361 362 363 364 365 366 < 367 > 368 369 370 371 372 373 .. 404 >> Следующая


using PollD.PoiiResuits;

'И Web Scivicf Microsoft Iriraiwt Е*р1лм

Fi# (:ir \f—i j Tqc Hffc ' |

i-в** - T ¦ 3 JL: J G Л * i]

Results

ТЛш ТйвС-жД! i'.E' Itnmj »r* lupprslcd, For a formal ftAfifckirt, i и,,л.чг Ifce ¦.'!( r/>rvf .-| || I inn ¦ _

* XfiLu R«tum №• rotiAt for the f-ofl

• Quc^H-fln

Я И*»* L** poll quvitoft

* A n i иг г гч

Return lh* frMOTfrj in th* tK^I

’ 1in*ienet
Практический пример 1 — web-сайт для проведения опросов

781

Конструктор в Formi сначала содержит строку кода, которая необходима Visual Studio.NET, н именно после нее следует включить код для web-метода Answerso:

public Forml1J

t

tt

11 Необходимо для поддержки Windows Form Designer it

InitiaiizeComponent Оl

Сначала требуется создать экземпляр класса Results, Не следует забывать, что это — класс-посредник, благодаря которому можно осуществлять доступ ко всем удаленным web-методам.

Results pollResults = new Results!);

В следующей строке задается текст, который будет виден на экране, пока форма осуществляет загрузку данных. При нормальной работе этот текст исчезает очень быстро:

questionLabel.Text = 'Loading poll data..

/ Загрузка данных опроса,,, /

В следующей строке происходит фактический вызов web-метода AnswersO. Обратите внимание на то, что это обычный вызов метода — класс-посредиик, сгенерированный Visual Studio.NET, скрытно выполняет за нас всю необходимую работу:

OtringH pollAiiBWera * pollResults.AnswersО;

В конструктор класса Forml нужно ВКЛЮЧИТЬ переменную С именем my AnswerCount, в которой будет храниться счетчик числа ответов, предусмотренных для данного опроса. Поскольку массив, получаемый web-методом Answers О, индексируется с нуля и его первый элемент является пустым, то необходимо уменьшить счетчик на единицу:

string!1 myAnswerCount * pollAnswere.Lenrth-l;

Когда известно количество ответов, можно вычислить размеры формы и включить в нее необходимые управляющие элементы. Каждая строка данных будет включать в себя:

? Управляющий элемент Label для вывода ответа.

Предназначен для вывода текста ответа.

? Управляющий элемент Label для вывода числа голосов.

Предназначен для вывода числа голосов, поданных за этот вариант ответа как в виде числа, так и в процентном отношении к общему чнслу проголосовавших,

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

В данной форме будет содержаться не так уж много управляющих элементов, и важно помнить, что они должны использоваться в виде групп. Например, когда мы получаем данные по голосованию, необходим способ, который позволил бы в цикле пройти по всем управляющим элементам для вывода числа голосов, с тем чтобы присвоить свойству Text каждого из них соответствующий счетчик голосов.
782_____________________________________________________________________Практический пример

Чтобы это сделать легко и просто, нужно сформировать массив созданных управляющих элементов Label, в котором один массив будет содержать надписи с текстом ответов, второй — надписи с числом голосов и третий — линейки для графического представления результатов голосования.

Следующая строка в Fonri.cs предназначается дня создания массива, в котором содержатся все управляющие элементы Label, ответственные за вывод ответов опроса (“С#”, "С+ + ” и т.д.). Массив answercontrois описывается па уровне класса следующим образом:

private Label П answerControle

Прн создании массива используется поле my Answer count, в котором содержится значение суммарного количества ответов:

answerControis = new Label[myAnswerCount]i

После создания массива можно приступать к организации цикла. При каждом проходе цикла создается управляющий элемент Label, задается его местоположение и некоторые другие свойства и ссылка на цикл записывается с массив, что позволит легко обратиться к нему впоследствии. Первым следует оператор for, В котором ВНОВЬ используется поле my Answer Count:

for(int i=l;i<- myAnswerCount;i++)

t

Для создания нового управляющего элемента Windows Forms Label используется ключевое слово new.

Label answerLabel = new Label О j .

Далее создается объект Location., который будет использоваться для определения места, где должна появиться данная надпись. Обратите внимание на то, каким образом определяется, что надпись должна располагаться на расстоянии 8 пикселей от левого края и 37 пикселей от верхнего края плюс еще 20 пикселей вниз для каждой последующей надписи (каждая надпись, включая небольшое пустое пространство вокруг нее, имеет высоту около 20 пикселей). Сначала создается самая верхняя надпись, после чего смещение происходит в направлении к нижнему краю:

answerLabel.Location > new Syetem.Drawing.Point(0, 37+(2D*i));

Создается объект size, который используется для задания размеров надписи — 200 пикселей в ширину и 16 пикселей в высоту. Такие значения оказываются подходящими для оформления страницы в данном случае — вы можете попробовать изменить их и посмотреть, что из этого выйдет:
Предыдущая << 1 .. 361 362 363 364 365 366 < 367 > 368 369 370 371 372 373 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.