Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Передача параметров в методы
Параметры можно передавать по значению и по ссылке. Если не указано обратное, то в С# все параметры передаются по значению. Если переменная передается по значению, вызываемый метод получает копию этой переменной, а это значит, что все изменения в ней по завершении метода будут утеряны. Для передачи параметров по ссылке в языке С# предусмотрено два ключевых слова— ref и out. Первое из них требует предварительной инициализации объекта, на который передается ссылка, а второе — не требует. class Rectangle { int xPos; int yPos; public Rectangle() { xPos = yPos = 0; } public void GetPosition(out int x, out int y) { x = xPos; у = yPos; } } class RefParamApp { static void Main(string[] args) { Rectangle rect; rect = new RectangleO; int xCurrent, yCurrent; rect.GetPosition(out xCurrent, out yCurrent); Console.WriteLine("Расположение прямоугольника: ({0}, {1})”, xCurrent, yCurrent); }} Именованные аргументы Обычно параметры должны передаваться в метод в том же порядке, в котором они определены. Именованные аргументы позволяют передавать параметры в любом порядке. То есть для приведенного ниже метода: string FullName(string firstName, string lastName) { return firstName + " " + lastName; } возможны следующие вызовы, которые вернут одно и то же полное имя: Fu1IName("John", "Doe"); FullName(lastName: "Doe", firstName: "John"); Необязательные аргументы Параметры также могут быть необязательными. Для таких параметров должны определяться значения по умолчанию. Необязательные параметры должны располагаться последними в списке. Поэтому следующее объявление метода будет неправильным: void TestMethod(int optionalNumber = 10, int notOptionalNumber) { System.Console.Write(optionalNumber + notOptionalNumber); } Чтобы этот метод работал, параметр optionalNumber должен быть определен последним. Если вас не устраивают необязательные параметры, для достижения того же эффекта можно применить перегрузку методов. Требования к выполнению лабораторной работы
Лабораторная работа №3 Тема: Использование элементов Timer и NotifyIcon в приложении. Окна диалога. MDI-приложения Цель: Освоить основные методы создания MDI-приложения и окон диалога, работы с таймером, освоение возможности размещать ссылку на программу в системной области задач. Теоретические сведения Дочерние окна, окна диалога Для добавления в проект дочернего окна в окне Solution Explorer щелкаем правой кнопкой на имени проекта и в появившемся контекстном меню выбираем Add/ Add Windows Form…В нашем проекте появилась новая форма — будем называть ее дочерней. Для отображения этой формы как немодального окна (т.е. после открытия окна можно иметь доступ к элементам главного окна) необходимо использовать метод Show, если нужно открыть модальное окно (которое полностью перехватывает управление на себя, пока его не закрыть другие окна приложения не доступны), то нужно использовать метод ShowDialog. Метод ShowDialog не возвращает управление программе, пока пользователь не закроет окно. Приложение должно получить от модального диалогового окна информацию, по щелчку какой кнопки оно было закрыто — ОК или Cancel. Диалоговое окно закрывается присвоением свойству DialogResult значения одного из членов перечисления DialogResult —DialogResult.OK или DialogResult.Cancel. Метод ShowDialog передает управление приложению и возвращает значение свойства DialogResult. Таким образом, как минимум в диалоговом окне надо реализовать обработчики события Click кнопок ОК и Cancel, присваивающие свойству DialogResult соответствующее значение. Вот обработчик для кнопки ОК. void OkButtonOnClick(object objSrc, EventArgs args) { DialogResult =DialogResult.OK; } В следующем коде форма приложения выводит диалоговое окно и обрабатывает результаты: if (dlg.ShowDialog() ==DialogResult.OK) {… } В Windows Forms этот процесс немного упрощен благодаря реализации свойства DialogResult в классе Button. Если свойству кнопки DialogResult присвоено значение одного из членов перечисления DialogResult, при щелчке кнопки свойству формы DialogResult автоматически присваивается значение и форма закрывается.
Закрыть окно можно так: this.Close(). Существуют стандартные диалоговые окна: OpenFileDialog.
Свойство FileName задает название файла, которое будет находиться в поле "Имя файла:" при появлении диалога. Свойство Filter задает ограничение файлов, которые могут быть выбраны для открытия — в окне будут показываться только файлы с заданным расширением. Через вертикальную разделительную линию можно задать смену типа расширения, отображаемого в выпадающем списке "Тип файлов". Например, Text Files (*.txt)|*.txt|AllFiles(*.*)|*.* что означает обзор либо текстовых файлов, либо всех. Свойство InitialDirectory позволяет задать директорию, откуда будет начинаться обзор. Если это свойство не установлено, исходной директорией будет рабочий стол. Вызов окна выбора файлов и проверка, что файл был выбран: if (openFileDialog1.ShowDialog() == DialogResult.OK) {… Обращение к выбранному файлу - openFileDialog1.FileName } Такие же методы и свойства имеет еще одно стандартное диалоговое окно SaveFileDialog. Существуют диалоговые окна выбора цвета ColorDialog и окно с возможностью выбирать шрифт, его размер и начертание - элемент управления FontDialog. Еще одно стандартное окно – окно сообщений. MessageBox.Show("Do you want save changes?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question). Возвращает значение, DialogResult.Yes или DialogResult. No. Создание MDI-приложений Такие программы, как блокнот и Microsoft Paint, относятся к SDI (Single — Document Interface) приложениям, способным работать только с одним документом. Другие, такие как Microsoft Word или Adobe Photoshop, поддерживают работу сразу с несколькими документами и называются MDI (Multiple — Document Interface) приложениями. Для создания такого приложения добавим в него дочернюю форму и устанавливаем свойству IsMdiContainer значение true. Цвет формы при этом становится темно-серым. Теперь в обработчике события, которое должно инициировать появление новой формы (пусть эта форма имеет имя blank), записываем следующие действия: private void mnuNew_Click(object sender, System.EventArgs e) { //Создаем новый экземпляр формы frm blank frm = new blank(); // формируем и задаем уникальное имя для формы frm.DocName = "Untitled " + ++openDocuments; frm.Text = frm.DocName; frm.MdiParent = this; //Указываем, что родительским контейнером нового экземпляра будет эта форма. frm.MdiParent = this; //Вызываем форму frm.Show(); } Переменная openDocuments должна быть объявлена в классе главной формы, а переменная DocName - в классе frm как public string DocName = "". Метод LayoutMdi определяет, как дочерние окна будут располагаться по отношению друг к другу. Он содержит перечисление MdiLayout, содержащее четыре члена: 1) ArrangeIcons переключает фокус на выбранную форму 2) Cascade - располагаются каскадом 3) TileHorizontal - располагаются горизонтально 4) TileVertical - располагаются вертикально.
Timer Таймер генерирует последовательность событий Tick(). Основные свойства элемента: - Interval – период генерации события Tick(). Задается в миллисекундах - Enable (bool) – разрешение работы NotifyIcon Некоторые программы, такие как словари и антивирусы, при запуске остаются в области уведомлений панели задач, откуда их можно развернуть, дважды щелкнув на иконке приложения (рис.1а). Элемент управления NotifyIcon и представляет собой отображение запущенного приложения в области задач.
Рис.1а Рис. 1б Рис. 1в Обычно при нажатии правой кнопкой мыши на элементе в области уведомления появляется контекстное меню, предлагающее открыть или скрыть приложение (рис.1б). Поэтому для работы с этим элементом на форму необходимо положить кроме элемента NotifyIcon, еще элемент контекстного меню ContextMenu. Свойства этих элементов задаются следующим образом: Изображение, используемое в качестве иконки (свойство Icon) элемента NotifyIcon, будет выводиться в область уведомлений, когда свойство notifyIcon1.Visible=true. Значение свойства Text представляет собой текст всплывающей подсказки, появляющейся при наведении курсора на иконку приложения (рис.1в). Предполагается, что иконка в области уведомлений будет появляться, когда окно программы сворачивается. При этом генерируется событие Resize – изменения размера формы. Для того, чтобы проверить, что событие сгенерировалось именно при сворачивании окна, проверяется свойство WindowState (состояния окна). Таким образом, обработчик этого события может иметь следующий вид: private void Form1_Resize(object sender, EventArgs e) { if (WindowState == FormWindowState.Minimized) { notifyIcon1.Visible = true; Hide(); } } Требования к лабораторной работе: Разработать MDI-приложение, позволяющее открывать дочерние окна, выполняющие задание согласно варианту. Для каждого задания предусмотреть его запуск, паузу, останов. Предусмотреть окно параметров, открывающееся как модальное. При сворачивании главного окна в системной области задач должна появиться иконка приложения. Контекстное меню иконки должно включать пункты Закрыть приложение, Развернуть приложение и О программе. Варианты заданий предполагают использование таймера. Варианты заданий к лабораторной работе
Вопросы к защите лабораторной работы №3 1. Организация работы с таймером. 2. Работа с элементом NotifyIcon. 3. Организация работы с контекстным меню. 4. Знать свойства и методы элементов управления, используемых в лабораторной работе. 5. Принципы создания MDI‑приложений. 6. Способы расположения дочерних окон в MDI приложении. 7. Отличительные особенности модальных и немодальных диалоговых окон. 8. Способы закрытия модальных диалоговых окон и возврата ими результата работы. Лабораторная работа №4 Тема: Разработка приложения на языке программирования C# с помощью платформы WРF. Контейнеры компоновки. Графика. Пользовательские элементы управления. Цель: Освоить основные методы разработки приложений на основе платформы WРF, работы с графикой и разработки пользовательских элементов управления.
Теоретические сведения Наряду с Windows Forms и GDI+ для построения настольных графических интерфейсов, начиная с версии.NET 3.0, также предлагается альтернативный API-интерфейс под названием Windows Presentation Foundation (WPF).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 74; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.29.145 (0.059 с.) |