Информационый портал Windows 7

У нас вы можете скачать драйвера и программы, найти красивые темы и обои, учебные материалы, а также получить консультации и многое другое.

  • главная
  • контакты
  • карта сайта
 
Программирование » Уроки по C# для начинающих »

Урок 2. Разбираем лексику языка C#.

 
     В прошлый раз я рассказал, как создать простое приложение типа Windows Form.

     Теперь мы разберём лексику языка C#.

     Взглянем на «Обозреватель решений» (Рис. 2.1).

Урок 2. Разбираем лексику языка C#.

Рис. 2.1. «Обозреватель решений» для нашей формы.


     Выделяем файл «FormOS7ru.cs» (или как Вы его назвали) – это основной файл формы. Жмём правую кнопку мыши и в появившемся меню выбираем пункт «Перейти к коду». И наслаждаемся видом кода, написанного на языке С#. Надо разобраться, что здесь написано.

Урок 2. Разбираем лексику языка C#.

Рис. 2.2. Текст нашей формы.


     Итак, файл начинается со строки «using System;» (Рис. 2.2). Директива «using» используется в данном случае для определения пространства имён. System - стандартное пространство имён, которое позволяет использовать основные функции языка С#. Более подробно о пространствах имён в C# можно посмотреть здесь.

     Зачем нужны директивы «using»? Очень просто: если бы не было директивы «using System.Windows.Forms;», то вместо «public partial class FormOS7ru : Form» пришлось бы написать «public partial class FormOS7ru : System.Windows.Form», что очень неудобно, когда приходится много писать.

     Обращаю особое внимание на то, что каждая строка заканчивается знаком «;», причём можно написать так:

     private
          bool

          []
            arrbFlag_Gpr
          = { true,
               false,true
               };

и компилятор поймёт, что строка заканчивается там, где стоит «;». Обращаю особое внимание, что Visual Studio самостоятельно выстраивает строку так, чтобы её было удобно читать.

     Директива «private» означает, что переменная используется только в этом файле. Подробнее о таких директивах читайте здесь.

     За директивой «private» следует тип переменной «bool», это означает, что наша переменная имеет два возможных значения: true и false. Квадратные скобки после типа переменной означают, что это массив данных. К имени переменной я добавил «arr» (от слова array - массив), это означает, что данная переменная объявлена как массив (для удобства поиска). Я сразу же присвоил массиву данных три значения. Попытка расширить массив приведёт к ошибке (индекс массива выходит за границы диапазона). Как это обойти, я расскажу позднее. Более подробно о типах переменных можно прочитать здесь.

     Язык программирования С# очень удобен: для каждой переменной и функции, заданной в самом языке есть очень удобная подсказка (Рис. 2.3).

Урок 2. Разбираем лексику языка C#.

Рис. 2.3. Подсказка C#.


     Как видно из рисунка, сразу после того, как мы написали первую букву слова, появляется подсказка, которая выдаёт нам список всех возможных вариантов. При выборе одного из вариантов, рядом появляется подсказка, поясняющая, для чего используется (или может использоваться) данное слово в данной программе.

     Если вдруг подсказка не появилась, можно вызвать её нажатием кнопки Урок 2. Разбираем лексику языка C#..

     Выбираем элемент «TextBox» (пока что он один на нашей форме). В свойствах элемента находим строку «ReadOnly» и устанавливаем значение «true» - чтобы пользователь не пытался писать там, где не нужно. А значение «ScrollBars» - меняем на «Both» - это упростит просмотр текста в этом элементе формы за счёт появления полос прокрутки справа и снизу.

     Теперь давайте попробуем создать консоль для нашей формы. Заодно разберём возможности работы со строковыми переменными.

     Для этого немного расширим форму и поместим на неё ещё два элемента при помощи панели элементов: «TextBox» – для ввода команд, и «Label» (Рис. 2.4). Как выбирать элементы, описано в уроке 1.

Урок 2. Разбираем лексику языка C#.

Рис. 2.4. Выбор элемента «Label».


     Заходим в окно свойств для элемента «Label» и меняем значение «(Name)» на «labelConsole», чтобы было понятнее нам. А значение «Text» – на «Консоль» – чтобы пользователь понял, для чего нужно поле ввода.

     В свойствах только что созданного элемента «TextBox» изменим значение «(Name)» на «textBoxConsoleMain».

     Теперь выберем элемент, который мы назвали «textBoxConsoleMain». В меню свойств выбираем иконку «События» (Рис. 2.5). В строке «KeyDown» пишем название «consoleKeyDown». Это событие происходит при нажатии на любую клавишу клавиатуры.

Урок 2. Разбираем лексику языка C#.

Рис. 2.5. Меню «События» для элемента «textBoxConsoleMain».


     Теперь записываем описание событий в файл «FormOS7ru.cs» (Рис. 2.6). После предыдущего действия у нас появилась функция с названием «consoleKeyDown», в которой мы будем обрабатывать нажатие клавиш.

     Создадим функцию «СonsoleKeyEnter», в которую будем передавать данные о том, что было набрано в строке консоли до нажатия клавиши «Enter».

     На рис. 2.6 представлен уже готовый текст.

Урок 2. Разбираем лексику языка C#.

Рис. 2.6. Текст файла «FormOS7ru.cs».


     Как видно из картинки, я разбил текст на несколько частей:

     1. Функция, инициализирующая форму;
     2. Свои функции – те, которые мы записываем самостоятельно;
     3. Глобальные переменные;
     4. Обработчики событий – создаются автоматически, заполняются нами вручную.

     Как видно из рис. 2.6, были созданы две глобальные переменные: «NewLine» - обеспечивает переход на новую строку в элементах типа «TextBox»; «arrstrVopros_Gpr» - набор команд, которые можно вводить в консоль.

     Далее мы прописываем в функции «СonsoleKeyEnter» оператор «switch()», который служит для сравнения значения, находящегося в скобках (в данном случае - «strKeys») со значениями, заданными после «case» и выполнения кода, написанного между «case :» и «break;». Обращаю особое внимание, что каждая строка «case» заканчивается словом «break;», и нет необходимости заключать всё, что будет написано между этими выражениями, в коммандные скобки.

     Оператор «switch()» заканчивается строкой «default: … break;» - это действие, которое будет выполняться если нужное значение не будет найдено в списке.

     Из текста видно, что после ввода слова «выход» или «_В» будет вызвана функция «Form.ActiveForm.Close();» - это стандартная функция, закрывающая активную форму. Мы будем ей пользоваться постоянно.

     После ввода слова «вопрос» или «_?» на элемент «textBoxConsole» будет выведено сообщение «Список команд» с небольшим отступом (символ «\t» используется для ввода символа табуляции). Далее выводятся на экран значения, содержащиеся в массиве «arrstrVopros_Gpr». Для этого используем функцию «for(;;)» в нашем случае объявляется переменная «i» типа «int», которая изменяется от 0 (так как первый индекс в любом массиве - 0) до «arrstrVopros_Gpr.Length» (количество элементов в массиве), но меньше этого значения на единицу. Причём переменная «i» увеличивается на единицу на каждом шаге.

     Причём переменная «i» существует только в пределах действия функции «for».

     Каждое значение выводится в новую строку для удобства чтения.

     Далее в функцию «consoleKeyDown» записываем условие «if(e.KeyCode == Keys.Enter)», то есть если код клавиши равен коду клавиши «Enter», вызываем функцию «ConsoleKeyEnter()» с параметром «textBoxConsoleMain.Text.Trim()» (текст, введённый пользователем в элемент «textBoxConsoleMain.Text»). Функция «Trim()» используется для удаления пробелов вначале и в конце строки.

     Далее в свойствах для элемента «textBoxConsoleMain» меняем значение «AutoCompleteSource» на «CustomSource», «AutoCompleteMode» на «SuggestAppend». И добавляем элементы в коллекцию автозаполнения: жмём левой кнопкой мыши на квадратике с многоточием (рядом со строкой «AutoCompleteCustomSource») и в появившемся окне записываем:

          выход
          вопрос


     После каждого слова жмём «Enter».

     Для очистки элемента, реализующего ввод команд, допишем в функции «consoleKeyDown» ещё одну строку: «textBoxConsoleMain.Text=””».

     Теперь запускаем программу и проверяем работу консоли(Рис. 2.7).

Урок 2. Разбираем лексику языка C#.

Рис. 2.7. Такая форма у нас получилась.


     При вводе буквы «в» внизу появится два варианта. Работает!

     Чуть не забыл: чтобы курсор клавиатуры сразу отображался в нужном элементе (в нашем случае это textBoxConsoleMain, нужно задать в свойствах элемента значение параметра TabIndex=0). Чем больше это значение, тем позднее пользователь дойдёт до нужного элемента, если будет перемещать курсор при помощи нажатия клавиши Tab на клавиатуре.


     Исходный текст программы можно скачать здесь: Вы не можете скачивать файлы с нашего сервера.




     Жду отзывов и предложений


     К списку статей          Предыдущий урок          Следующий урок


     DiamondTigeR

     
Урок 2. Разбираем лексику языка C#.



Автор: d.tiger. Дата: 13-12-2011, 20:26

Просмотров: 15485

В избранное:

Уважаемый посетитель, для доступа к ресурсам сайта OS-7.RU, а также для скачивания материалов - Вам необходимо зарегистрироваться либо войти под своим именем.







 (голосов: 2)
Комментарии (5) Распечатать