Главная страница
Навигация по странице:

  • Выбор пункта меню сочетанием клавиш.

  • Дополнительные возможности меню.

  • Defaultltem Определяет, какой пункт меню выбран по умолчанию Enabled

  • Index Определяет позицию пункта меню Shortcut

  • MessageBox

  • Значения свойств текстовых полей и кнопок диалога AddHotelDialog.cs

  • Разработка gui. Создание sdiприложений обработка событий


    Скачать 361.78 Kb.
    НазваниеРазработка gui. Создание sdiприложений обработка событий
    Дата14.10.2022
    Размер361.78 Kb.
    Формат файлаdocx
    Имя файла14.10.docx
    ТипЛабораторная работа
    #733575
    страница4 из 7
    1   2   3   4   5   6   7

    Создание меню


    Добавим в приложение SocOpros простое меню для выхода из про- граммы, пункт меню File / Exit.

    1. Откройте панель инструментов Toolbox и перетащите управ- ляющий элемент MenuStrip на форму приложения.

    2. Для создания выпадающего меню File с пунктом Exit, введите File и Exit, как на рис. 3.2. В окне Properties измените названия этих пунктов меню на MenuFile и MenuExit.

    3. Добавьте код в обработчик события File / Exit.

    private void MenuExit_Click(object sender, EventArgs e) { Application.Exit();

    }


    Рис. 3.2. MenuStrip для добавления в форму меню

    Выбор пункта меню сочетанием клавиш. В свойстве Short- cutKeys в окне Properties для пункта меню выбрать из появившегося окна нужное сочетание клавиш, для отображения рядом с названием пункта меню.
    Дополнительные возможности меню. В классе MenuStrip опре- делены свойства, при помощи которых можно устанавливать флажок напротив пункта меню, прятать пункты меню, делать некоторые пунк- ты меню недоступными и т. п. (табл. 3.5).

    Т а б л и ц а 3.5

    Свойства MenuItem, обеспечивающие дополнительные возможности меню


    Свойство

    Назначение

    Checked

    Определяет, установлен ли флажок рядом с текстом пунк-

    та меню

    Defaultltem

    Определяет, какой пункт меню выбран по умолчанию

    Enabled

    Определяет, доступен ли тот или иной пункт меню

    Index

    Определяет позицию пункта меню

    Shortcut

    Устанавливает клавиши, используемые для активизации

    элемента меню в приложении

    Text

    Устанавливает название пункта меню

    Закрытие формы


    Существует несколько способов закрыть окно:

    щелкнуть на кнопке "X" (Закрыть) в правом верхнем углу окна; закрыть окно из системного меню в левом верхнем углу окна; закрыть окно с помощью комбинации клавиш Alt+F4;

    выйти из приложения с помощью меню File / Exit.

    Когда закрывается форма, можно остановить процедуру завер- шения:

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) {

    if (MessageBox.Show("Do you want to close", "SocOpros", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)

    Application.Exit();

    }
    Для того чтобы закрыть главное окно и не выходить из приложе- ния, обработчик меню File / Exit должен вызвать метод Сlose.

    private void MenuExit_Click(object sender, EventArgs e) { Close();

    }

    Диалоговые окна


    Диалоговое окно – это набор управляющих элементов, с помощью которых упрощается процесс ввода данных. Для создания простых диалоговых окон используется класс MessageBox. Более сложные диа- логовые окна создаются на основе форм.

    Создание модального диалога


    Программа 5

    1. Cоздайте новое приложение AdminForm. На форме расположите кнопки Add и Exit и 4 элемента Label для отображения информации (рис. 3.3). По щелчку на кнопке Add отображается пустая форма Add- HotelDialog.cs. Это обычная форма.

    2. Откройте файл AddHotelDialog.cs в режиме конструктора. В окне Properties установите значение свойства FormBorderStyle равным Fix- edDialog.

    3. Установите значение свойств ControlBox, MinimizeBox и Max- imizeBox равным false.

    4. Добавьте на форму текстовые поля TextBox и Label, содержащие информацию о гостинице. Кроме того, необходимо добавить кнопки ОК и Cancel (рис. 3.4).

    5. Установите значения и имена элементов в соответствии с табл. 3.6.

    6. Установите значение свойства DialogResult кнопки ОК равным ОК. Точно так же установите значение этого свойства кнопки Cancel равным Cancel.







    Рис. 3.3. Окно приложения AdminForm

    Рис. 3.4. Диалоговое окно ввода информации о гостинице


    Т а б л и ц а 3.6

    Значения свойств текстовых полей и кнопок диалога AddHotelDialog.cs


    Имя (Name)

    Текст

    txtCity

    (не заполнено)

    txtHotelName

    (не заполнено)

    txtNumberRoom

    s

    (не заполнено)

    txtRate

    (не заполнено)

    cmdOk

    ОК




    cmdCancel

    Cancel

    1. В файле AdminForm.cs временно добавьте к обработчику cmdAdd_Click код, который отвечает за отображение окна диалога. Диалоговое окно отображается с помощью метода ShowDialog, а не метода Show, который используется для обычных форм.

    private void cmdAdd_Click (object sender, EventArgs e) { AddHotelDialog dlg = new AddHotelDialog(); dlg.ShowDialog();

    }


    1. Скомпонуйте и запустите пример. Теперь диалоговое окно уже можно открыть с помощью кнопки Add, а закрыть – с помощью любой из кнопок ОК или Cancel. Можно проверить, что диалоговое окно яв- ляется модальным, пощелкав мышью где-нибудь еще в приложении.

    2. Закрыть приложение можно кнопкой Exit, добавив обработчик события:

    private void cmdExit_Click(object sender, EventArgs e) { if(MessageBox.Show("Do you want to close", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) {

    Application.Exit();

    }

    Передача данных между диалогом и родительской формой


    Для этих целей в классах .NET Framework нет встроенного меха- низма. В классе диалога для каждого сообщения, которое будет пере- даваться между родительской формой и диалогом, нужно определить свойство. Добавим в класс AddHotelDialog свойства City, HotelName, Rate (Стоимость) и NumberRooms.
    public String City {

    get { return txtCity.Text; }

    set { txtCity.Text = value; } } public String HotelName {

    get { return (txtHotelName.Text); }

    set { txtHotelName.Text = value; } } public int Rooms {

    get { return Convert.ToInt32(txtNumberRooms.Text); } set { txtNumberRooms.Text = value.ToString(); } }

    public double Rate {

    get { return Convert.ToDouble(txtRate.Text); } set { txtRate.Text = value.ToString(); } }

    private void cmdOk_Click(object sender, EventArgs e)

    { Close(); }
    Теперь можно использовать эти свойства при закрытии диалогово- го окна с помощью кнопки ОК.

    private void cmdAdd_Click(object sender, EventArgs e) { AddHotelDialog dlg = new AddHotelDialog(); dlg.ShowDialog();

    if (dlg.HotelName != "") { label1.Text = dlg.City; label2.Text = dlg.HotelName;

    label3.Text = dlg.Rooms.ToString(); label4.Text = dlg.Rate.ToString();

    } else {

    MessageBox.Show("Введите данные", "Hotel Broker Administration", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

    return;

    } }

    1   2   3   4   5   6   7


    написать администратору сайта