Московский государственный университет имени М.В.Ломоносова
Опубликован: 01.11.2004 | Доступ: свободный | Студентов: 11275 / 456 | Оценка: 4.12 / 4.01 | Длительность: 19:20:00
ISBN: 978-5-9556-0077-9
Специальности: Программист
Лекция 23:

Библиотека классов .NET Framework среды проектирования Visual Studio .NET. Формы Windows

< Лекция 22 || Лекция 23: 123 || Лекция 24 >

Применение стандартных диалогов

Для открытия и закрытия файла, для выбора рисунка или пиктограммы, для определения цвета библиотека .NET Framework предоставляет набор классов стандартных диалогов.

Для использования стандартного диалога сначала требуется создать переменную типа данного диалога, а затем вызвать метод ShowDialog. Если в стандартном диалоге было выбрано значение (имя файла, цвет), то метод ShowDialog возвращает значение true.

Например:

// Вызов стандартного диалога Open
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = 
         Environment.GetFolderPath(
                 Environment.SpecialFolder.Personal);
openFileDialog.Filter = "Text Files (*.txt)|*.txt|
                         All Files (*.*)|*.*";
// Стандартные диалоги отображаются методом ShowDialog
if (openFileDialog.ShowDialog(this) == 
                                     DialogResult.OK)
// Свойство FileName содержит имя выбранного файла
{string FileName = openFileDialog.FileName; }

// Вызов стандартного диалога SaveAs
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = 
                  Environment.GetFolderPath(
                  Environment.SpecialFolder.Personal);
saveFileDialog.Filter = "Text Files (*.txt)|*.txt|
                        All Files (*.*)|*.*";
if (saveFileDialog.ShowDialog(this) == 
                                   DialogResult.OK)
{string FileName = saveFileDialog.FileName;}

Работа с меню

Элемент управления MenuStrip (линейка меню) представляет собой контейнер для меню, размещаемый в форме. Объект ToolStripMenuItem может быть добавлен в MenuStrip. Объект ToolStripMenuItemthat является отдельным элементом меню, который может быть самостоятельной командой или родительским меню для других элементов подменю.

MenuStrip служит контейнером для объектов следующих классов:

  • ToolStripMenuItem,
  • ToolStripComboBox,
  • ToolStripSeparator,
  • ToolStripTextBox.

Класс MenuStrip заменяет и расширяет класс MainMenu предыдущих версий (класс Main-Menu оставлен для обратной совместимости и дальнейшего использования).

Свойство окна формы MainMenuStrip определяет линейку меню для данного окна.

Например:

// Создание объекта MenuStrip с новым окном подменю
  MenuStrip ms = new MenuStrip();
   // Создание подменю
  ToolStripMenuItem windowMenu = 
          new ToolStripMenuItem("Window");
  ToolStripMenuItem windowNewMenu = 
          new ToolStripMenuItem("New",
             null, 
                // Обработчик данной команды:
            new EventHandler(windowNewMenu_Click));
  // Список элементов меню
  windowMenu.DropDownItems.Add(windowNewMenu);
  ((ToolStripDropDownMenu) 
       (windowMenu.DropDown)).ShowImageMargin = false;
  ((ToolStripDropDownMenu)
      (windowMenu.DropDown)).ShowCheckMargin = true;

// Указывает, что ToolStripMenuItem будет отображать 
// список дочерних форм
  ms.MdiWindowListItem = windowMenu;

// Добавление окна ToolStripMenuItem к линейке меню
  ms.Items.Add(windowMenu);

// Встраивание линейки меню в верх формы.
  ms.Dock = DockStyle.Top;

// Свойство Form.MainMenuStrip определяет линейку меню
   this.MainMenuStrip = ms;
Листинг 23.3.

Для добавления к форме линейки меню следует на панели инструментов выбрать элемент управления MenuStrip (или MainMenu в предыдущих версиях).

< Лекция 22 || Лекция 23: 123 || Лекция 24 >
Александр Демьяненко
Александр Демьяненко

Можно ли сдавать один и тот же тест несколько раз?
Или же один и тот же тест можно сдать лишь однажды?

Максим Стогний
Максим Стогний

Добрый день!

Скажите, пожалуйста, если в терминологии объектно-ориентированного программирования функции также называются методами или методами - членами класса, в примере объявления указателя на метод использовали в формальном описании оба названия:

тип_метода (имя_класса::*имя_метода_указателя)
    (список параметров);
тип_функции (*имя_ функции_указателя)
    (список параметров);

при этом можно было  тип_функции во втором описании заменить на тип_метода? Т.е.:

тип_метода (*имя_ метода_указателя)
    (список параметров);