Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Визуальный интерфейс. Наследник Form для главной формы. Свойства и методы формы. Компоненты .NET




Лекция 7

Консольные приложения. Визуальный интерфейс

 

Консольные приложения. Работа с буфером в консоли. Свойства окна консоли. Запись в консоль и чтение данных из консоли

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

Консоль, по сути, представляет собой буфер с памятью. Когда открывается окно консоли, справа открывается вертикальная полоса прокрутки. Это объясняется тем, что буфер строк по умолчанию очень большой, он рассчитан на 300 строк. Буфер колонок (символов в ширину) рассчитан на 80 символов. Чтобы просмотреть размеры буфера, можно воспользоваться свойствами BufferHeight и BufferWidth класса Console (т. е., написать в программе Console.BufferHeight и Console.BufferWidth соответственно) Оба значения возвращают количество символов.

С помощью свойств CursorLeft и CursorTop можно узнать или изменить позицию курсора относительно левой и верхней границ буфера соответственно.

Свойство Title класса Console – текстовая строка, которая отображает заголовок окна:

Console.Title = “Здравствуй, мир!”;

Свойства WindowHeight и WindowWidth позволяют задать высоту и ширину окна соответственно. Значения задаются в символах и зависят от разрешения экрана. Для монитора с разрешением 1280×1024, например, максимальная высота составляет 81.

Самый распространённый метод записи в консоль – WriteLine(). Часто он просто выводит на экран строку, задаваемую в качестве параметра. Существует почти два десятка перегруженных вариантов данного метода, из которых чаще всего используются следующие:

WriteLine (String, Object);

WriteLine (String, Object, …);

WriteLine (String, Object[]);

Во всех методах первый параметр – строка форматирования, т. е., просто текст, внутри которого (аналогично функции printf в C) могут быть указаны определённые места, в которых нужно вставить аргументы. Эти места указываются в виде {x}, где x – номер аргумента. Сами аргументы передаются во втором, третьем и (при необходимости) последующих параметрах. Например, в строке

 Console.WriteLine (“Хлеб стоит = {0} рублей”, 25);

в первом параметре указана строка со ссылкой на нулевой аргумент {0}. Нулевой аргумент – это второй параметр. На экране в итоге высветится “Хлеб стоит 25 рублей”

В строке форматирования можно использовать специальные символы форматирования, например, ‘\n’ – переход на новую строку, ‘\r’ – переход в начало строки и т. д.

Аналогично предыдущему примеру, в строке

Console.WriteLine (“Это число {0}\nЭто ещё число {1}”, 10, 12);

аргументу {0} отвечает второй параметр со значением 10, а аргументу {1} – третий параметр 12. В итоге в консоли будет выведена надпись

Это число 10

Это ещё число 12

    Когда аргументов много, их удобнее передавать в массиве. Следующий пример похож на предыдущий, но все аргументы группируются в массив и передаются во втором параметре:

   Console.WriteLine (“Это число {0} \nДругое число {1}”, new Object[]{3, 4});

Результатом выполнения такой инструкции будет надпись:

Это число 3

Другое число 4

Для чтения из консоли существуют два метода: Read() и ReadLine(). Первый метод читает данные посимвольно; при обращении к методу он возвращает числовой код очередного символа из потока ввода.

Приведём пример использования метода Read():

char ch;

do

{

     int x = Console.Read(); // чтение очередного символа

     ch = Convert.ToChar(x); // конвертирование в тип char

     Console.WriteLine(ch); // вывод символа в отдельной строке

} while (ch != ‘q’)

Цикл, в течение которого пользователь вводит строки символов, а программа выводит каждый введённый символ в отдельной строке, завершается, как только введена строка, содержащая символ ‘q’ (с последующим нажатием клавиши Enter)

Метод ReadLine() тоже считывает данные с входного буфера, но возвращает буфер целиком в виде строки.

 

Визуальный интерфейс. Наследник Form для главной формы. Свойства и методы формы. Компоненты .NET

На начальном этапе создания приложения с графическим интерфейсом в Microsoft Visual Studio выберем пункт меню File | New | Project (Файл | Новый | Проект) и в появившемся окне выберем Windows Forms Application (Приложение Windows Forms) в разделе Visual C# | Windows.

 

 

Два основных модуля, входящие в состав любого проекта, где создаётся графическое приложение – Form1.cs и Program.cs.

В файле Program.cs объявлен основной рабочий класс Program и метод Main, этот файл нужен, главным образом, для создания приложения и отображения главного окна программы. Вначале Program.cs подключает пространства имён, два из которых необходимы для компиляции программы:

1) System – в этом пространстве в .NET объявлены основные типы данных и определены классы объектов, необходимых для работы любого приложения .NET.

2) Systems.Windows.Forms – в этом пространстве расположено всё, что необходимо для функционирования формы.

Форма в .NET – это проект будущего окна.

Поток в программе – это путь выполнения кода. Главный поток приложения начинает свой «путь» с метода Main(), последовательно выполняя инструкции. При создании дочерних потоков необходимо указать метод, с которого будет начинаться выполнение вторичного потока.

В файле Program.cs перед методом Main() в квадратных скобках стоит слово STAThread. Атрибут указывает на то, что модель потоков для приложения будет одиночная. Если атрибут STAThread будет отсутствовать, компоненты Windows могут работать некорректно, так как приложение будет использовать не поддерживаемую в Windows Forms многопоточную модель разделения кода.

В файле Form.cs определён класс Form1, являющийся наследником класса Form, который в .NET реализует все необходимые для формы свойства и методы. Можно создать экземпляр этого класса и вызвать метод отображения. Но на экране мы увидим пустое окно, которое не может быть нам полезно. Необходим класс-наследник, который позволит нам расширять возможности окна, добавляя меню, кнопки, панели и т. д.

Внутри класса Form1 определяется конструктор, в котором вызывается метод InitializeComponent() С помощью этого метода инициализируются все свойства формы и компоненты, которые могут быть установлены на форме.

Визуальный дизайнер для работы с формой можно открыть, щёлкнув по названию файла Form1.cs в панели обозревателя решений (Solution Explorer) Доступ к свойствам формы будет открыт после выбора пункта Properties (Свойства) контекстного меню, которое вызывается путём щелчка правой клавишей мыши внутри окна визуального дизайнера. Самые важные из них:

·    Text – текст в заголовке окна. Значение по умолчанию – Form1.

·    BackgroundColor (или BackColor) – цвет фона окна. Если щёлкнуть в поле напротив свойства, появится кнопка выпадающего списка. Если щёлкнуть  по ней, можно увидеть панель выбора цвета.

 

  Панель состоит из трёх закладок. Для окон желательно указывать один из цветов в закладке «Система» и лучше, если это будет Control для диалоговых окон и Window для окон, которые должны отображать данные.

·    Cursor – позволяет задать курсор, который будет отображаться в момент, когда курсор мыши находится над поверхностью окна.

·    Enabled – позволяет задать доступность окна; значение false говорит о том, что компонент не будет реагировать на действия пользователя, т.е. будет недоступен.

·    Font – шрифт, который будет использоваться для вывода текста поверх окна. Особенно актуально для компонентов, содержащих надписи.

·    ForeColor – цвет переднего плана, который чаще всего используется в качестве цвета текста.

·    Icon – позволяет задать иконку для формы. Имеется кнопка, вызывающая стандартное окно для открытия файла иконки.

·    Location – положение окна относительно левого верхнего угла экрана.

·    MaximumSize – максимальные значения ширины и длины окна.

·    MinimumSize – минимальные размеры окна, менее которых окно не может быть уменьшено.

·    WindowState – состояние окна (Normal – нормальное, Maximized – развёрнутое на весь экран, Minimized – окно должно быть свёрнуто)

Изменять свойства формы можно и в конструкторе класса Form1, причём код изменений должен быть написан после вызова метода InitializeComponent().

 Класс Form также содержит множество методов, которые наследуются создаваемыми программистами формами:

·    Show() – отобразить созданное окно немодально. Немодальное окно не блокирует выполнение родительского окна (в котором оно было создано) Таким образом, оба окна будут работать «параллельно», между ними можно будет переключаться.

·    ShowDialog() – отобразить окно модально. В этот момент в окне, в котором вызван метод, выполнение блокируется до тех пор, пока не закрыто дочернее окно, отображённое с помощью ShowDialog(). Можно будет работать только с дочерним окном, и оно всегда отображается поверх родительского.

·    Hide() – скрыть окно, не уничтожая его. Это действие имеет смысл для немодальных окон.

·    Close() – закрыть форму.

·    Invalidate() – перерисовать форму.

В платформе .NET для информирования о возникновении какого-либо состояния или о действии используются события (events) или сообщения. Например, в ответ на щелчок мыши или на изменение положения окна оно генерирует событие определённого класса, которое мы можем перехватить.

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

При создании обработчика событий необходимо вначале выделить компонент, событие которого мы хотим поймать, и нажать кнопку Events в панели Properties. Теперь, чтобы создать нужный обработчик события, достаточно дважды щелкнуть в поле справа от имени события. Среда разработки создаст необходимое событие, переключится в режим кода и установит курсор в тело метода, созданного для обработки события.

Допустим, необходимо создать обработчик события MouseClick. Тогда нужно, выделив форму и перейдя в панели Properties в режим просмотра событий, дважды щелкнуть мышью напротив соответствующего события. Будет создан метод Form1_MouseClick():

 private void Form1_MouseClick(object sender, MouseEventArgs e)

 {

 MessageBox.Show("Клик");

 }

Здесь внутри метода обработки события вызывается метод Show() класса MessageBox. Этот метод отображает на рабочем столе диалоговое окно с сообщением, которое передано в качестве параметра. В нашем случае каждый раз, когда будет произведён щелчок мышью по форме, будет появляться сообщение «Клик»

Компоненты .NET делятся на два типа — визуальные и невизуальные. Визуальные компоненты (метки, кнопки, поля ввода и т. д.) появляются на форме. Невизуальные компоненты (например, таймер) появляются на специальной панели и отображаются только во время дизайна формы в виде имен с иконками. Во время выполнения программы невизуальные компоненты не видны.

Доступ к компонентам .NET можно получить из панели Toolbox (чтобы отобразить её на экране, нужно выбрать в меню View | Toolbox) На форме компоненты можно перетаскивать мышью, визуально устанавливая их положение.

Основные свойства классов, соответствующих визуальным компонентам:

· Anchor — свойство позволяет определить, к какой стороне прикреплять

компонент;

· BackColor — цвет фона;

· Font — шрифт;

· Name — название объекта, имя переменной для объекта элемента управления)

· ForeColor — цвет переднего плана;

· Height — высота элемента управления;

· Location — положение;

· MaximumSize — максимальный размер элемента управления;

· MinimumSize — минимальный размер элемента управления;

· Size — размер компонента (ширина и высота)

Кратко остановимся на некоторых общих компонентах .NET.

1) Button – обычная кнопка Windows. Наиболее часто используемые свойства – Text (отвечает за надпись на кнопке) и Name, а чаще всего отлавливаемое событие – Click (нажатие кнопки)

2) CheckBox – флажок; используется, когда пользователь выбрал один из двух вариантов – да или нет. В окнах настройки шрифтов флажком CheckBox можно выбрать, например, должен ли быть шрифт полужирным или нет. Свойство Checked равно истине (true), если пользователь поставил флажок, иначе будет ложь (false)

3) CheckedListBox – динамический список, состоящий из элементов, напротив которых ставятся галочки (флажки)

4) ComboBox – выпадающий список, удобный когда нужно выбрать одно значение из целого списка.

5) DateTimePicker – выглядит как выпадающий список, но в правом углу вместо стрелки для открытия списка находится иконка, по нажатию которой появляется всплывающее окно для выбора даты.

6) ListBox – по свойствам похож на выпадающий список. Но для такого компонента не предусмотрена возможность выставления флажков.

 

7) RadioButton – очень похож на CheckBox и позволяет пользователю выбирать этот компонент, но на форме может быть выделен только один из компонентов класса RadioButton.

Контейнеры – это компоненты, на поверхности которых можно располагать другие элементы управления.

·  GroupBox. Широко используется, например, для размещения группы компонентов RadioButton, работающих независимо друг от друга.

·  Panel. Едва ли не самый популярный контейнер, который программисты используют для оформления и группировки и у которого нет никакого текста.

·  TabControl. Смысл компонента ‒ те же панели, которые можно переключать с помощью вкладок (Tab), расположенных вверху компонента.

Наиболее важные меню и панели инструментов:

·   MenuStrip – обычное меню в верхней части окна приложения.

·   ContextMenuStrip – контекстное меню, появляющееся в ответ на нажатие правой кнопкой мыши на определенном элементе управления или форме.

·   ToolStrip – панель инструментов, которая чаще всего дублирует функции, которые уже есть в меню.

·   StatusStrip – строка, отображающая состояние работы программы. На поверхности компонента можно разместить, например, метку, отображающую текстовую информацию.










Последнее изменение этой страницы: 2018-05-10; просмотров: 249.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...