Опубликован: 11.09.2006 | Доступ: свободный | Студентов: 7649 / 473 | Оценка: 4.26 / 3.45 | Длительность: 30:46:00
ISBN: 978-5-9556-0080-2
Лекция 1:

Введение в windows-формы

Лекция 1: 12345678910 || Лекция 2 >

XML-документирование кода

При написании комментариев к коду приложения Calculator я использовал XML-комментарии. Для вставки XML-комментария достаточно трижды поставить знак слэша — ///, среда сама откроет тег, где уже можно вводить текст комментария. Использование такого способа документирования более удобно, чем обычное комментирование, — можно переносить слова на следующую строку без добавления знака комментария. Но самое главное — компилятор транслирует эти комментарии в отдельный XML-файл. Откройте окно Solution Explorer проекта Calculator и щелкните правой кнопкой на его названии. В появившемся контекстном меню выберите пункт Properties. На вкладке Configuration Properties/Build (см. рис. рис. 1.24) в поле XML Documentation File введите название выходного файла — CalcDescription.xml. Скомпилируйте приложение. Запустите проводник Windows (клавиша Windows+E) и перейдите в папку, содержащую проект Calculator. В ней появился созданный нами файл CalcDescription.xml, содержимое которого представляет собой обычный XML- документ:

<?xml version="1.0" ?> 
<doc>
	<assembly>
		<name>Calculator</name> 
	</assembly>
	<members>
		<member name="F:Calculator.Calc.odin">
			<summary>Объявляем и инициализируем переменные, 
которые будут возникать на экране при нажатии соответствующих кнопок.</summary> 
  		</member>
		<member name="M:Calculator.Calc.Dispose(System.Boolean)">
			<summary>Clean up any resources being used.</summary> 
		</member>
		<member name="M:Calculator.Calc.InitializeComponent">
		<summary>Required method for Designer support — do not 
modify the contents of this method with the code editor.</summary> 
		</member>
		<member name="M:Calculator.Calc.Main">
			<summary>The main entry point for the application.</summary> 
		</member>
		<member name="M:Calculator.Calc.btn1_Click(System.Object,System.EventArgs)">
			<summary>Обработчики для кнопок обращаются к методу 
chislonaEkrane класса mehanizmcalkulyatora и передают ему одну из постоянных (odin, dva, tri и
т.д.). Результат, возвращаемый методом, присваивается свойству Text текстового поля txtOutput.</summary> 
		</member>
		<member name="M:Calculator.Calc.btn_delenie_Click(System.Object,System.EventArgs)">
			<summary>Обработчики кнопок действия калькулятора
 передают методу DeystvieCalculatora класса mehanizmcalkulyatora переменную перечисления Deystvie.</summary> 
		</member>
		<member name="F:Calculator.mehanizmcalkulyatora.peremennayaMinus">
			<summary>Объявляем и инициализируем переменную, 
которая будет использоваться для смены знака при нажатии клавиши (+/–)</summary> 
		</member>
		<member name="F:Calculator.mehanizmcalkulyatora.resultatVichisleniy">
			<summary>Объвляем переменные для работы калькулятора: 
resultatVichisleniy — переменная для хранения промежуточного результата в механизме 
калькулятора; resultatOutput — переменная, значение которой будет сниматься с экрана и 
выводиться на него; tekusheeDeystvieCalculatora — хранение одного из действий калькулятора; 
pervoeChislo — переменная, в которую будет записываться число на экране до нажатия на одну 
из четырех кнопок с действием; vtoroeChislo — второе число на экране; dobavlenierazryada — при 
добавлении следующего разряда эта переменная примет значение true; ChislosTochkoy — при 
добавлении десятичного разряда (знака точки) эта переменная примет значение true</summary> 
		</member>
		<member name="M:Calculator.mehanizmcalkulyatora.#ctor">
			<summary>В конструкторе класса mehanizmcalkulyatora 
инициализируем переменные ChislosTochkoy и dobavlenierazryada — при запуске калькулятора на 
экране нет ни разрядности, ни десятичной части.</summary> 
		</member>
		<member name="M:Calculator.mehanizmcalkulyatora.chislonaEkrane(System.String)">
			<summary>В этом методе переменная resultatOutput 
изменяется — при вводе числа ее значение перезаписывается.</summary> 
		</member>
		<member name="M:Calculator.mehanizmcalkulyatora.DeystvieCalculatora
(Calculator.mehanizmcalkulyatora.Deystvie)">
			<summary>Метод, в котором определяется 
peremenDeystviya, — одно значение перечисления Deystvie, в зависимости от выбора клавиши +, –
, *, или /</summary> 
		</member>
		<member name="M:Calculator.mehanizmcalkulyatora.ZnakChisla">
<summary>При нажатии кнопки +/–- число на экране — tekusheeChislo умножается на –1, а 
затем результат снова присваивается переменной resultatOutput.</summary> 
		</member>
		<member name="M:Calculator.mehanizmcalkulyatora.ZnakTochki">
			<summary>При нажатии кнопки ( , ) переменная 
resultatOutput приобретает дробную часть.</summary> 
		</member>
		<member name="M:Calculator.mehanizmcalkulyatora.ZnakRavno">
			<summary>При нажатии кнопки ZnakRavno обрабатываются 
значения переменнных pervoeChislo и vtoroeChislo, результат присваивается переменной 
resultatVichisleniy, которая затем преобразуется в resultatOutput.</summary> 
		</member>
		<member name="M:Calculator.mehanizmcalkulyatora.Sbros">
			<summary>При нажатии кнопки С (сброс) значения 
переменных обнуляются.</summary> 
		</member>
		<member name="T:Calculator.mehanizmcalkulyatora.Deystvie">
			<summary>Создаем перечисление Deystvie для определения 
одного из четырех действий калькулятора.</summary> 
		</member>
	</members>
</doc>
Листинг 1.10.

Файл получается довольно длинным, и читать его в таком формате неудобно, хотя и возможно. Однако XML-код можно преобразовать в HTML, написав XSLT-файл. Кроме того, XML-документ можно сохранить в специальной базе данных для документации.

Документирующие комментарии можно преобразовать в чрезвычайно удобную форму, сгенерировав в среде Visual Studio .NET отчет Code Comment Web Report. Выберите пункт меню Tools/Build Comment Web Pages. Результатом будет набор HTML-файлов, которые можно просмотреть непосредственно в Visual Studio .NET или с помощью браузера, перейдя в сформированную папку CodeCommentReport (рис. 1.48):

Страница отчета

увеличить изображение
Рис. 1.48. Страница отчета

Для увеличения функциональности создаваемого отчета при XML-документировании кода можно использовать стандартные теги. Подробное обсуждение этих вопросов выходит за рамки этой книги.

Полный список тегов можно найти в документации, входящей в комплект Visual Studio .NET.

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

Когда мы создаем новую форму, в заголовке располагается стандартная иконка —ICO. Наверняка ее вид не может устраивать нас для готового приложения. Можно, конечно, воспользоваться одним из файлов .ico, находящихся на нашем компьютере, или даже иконкой из коллекции, входящей в комплект поставки Microsoft Visual Studio .NET — мы это уже делали, но лучше нарисовать уникальную иконку во встроенном редакторе иконок. Итак, File/New/File (Ctrl+N) и выбираем IconFile:


Рис. 1.49.

Запускается редактор изображений Microsoft Visual Studio.NET, внешний вид которого имеет много общего с прочими графическими редакторами:

Можно определить размер рисунка и его цветовую схему — Image/New Image Type (Ins):


Рис. 1.51.

Оптимальным типом изображения для иконки нашего приложения будет 32x32, 256 colors.

После завершения работы над иконкой ее можно сохранить и затем выбрать ее в свойстве Icon формы.

Аналогично можно создавать изображения курсоров — Ctrl+N и далее Cursor File.

Лекция 1: 12345678910 || Лекция 2 >
Елена Дьяконова
Елена Дьяконова

При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: 

Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll

Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан.

Затем:

Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll

Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз.

Александр Сороколет
Александр Сороколет

Свойство WindowState формы blank Maximized. Не открывается почемуто на всё окно, а вот если последующую форму бланк открыть уже на макс открывается :-/