| Украина, Киев |
Опубликован: 13.07.2010 | Уровень: специалист | Доступ: платный
Самостоятельная работа 29:
Панели инструментов и строка состояния
< Самостоятельная работа 28 || Самостоятельная работа 29 || Самостоятельная работа 30 >
Аннотация: В данной лекции рассматриваются панели инструментов и строка состояния.
Файлы к лабораторной работе Вы можете скачать
здесь.
Панели инструментов обычно располагаются вслед за меню приложения и содержат кнопки с пиктограммами, дублирующие команды меню. Внизу рабочей области располагается строка состояния, отображающая информацию о наиболее значимых характеристиках приложения в данный момент.
Заготовка приложения со стартовой формой
Мы еще не знаем, сколько упражнений получится в этой работе, поэтому применим список ListBox, в который можно добавлять сколько угодно опций вызова упражнений.
-
Выполните
команду File/New/Project и заполните, в
соответствии с рисунком, мастер создания приложения с именем ToolStatusStrip
-
Через
панель Solution Explorer переименуйте файл Form1.cs в Start.cs,
а заголовку окна формы присвойте значение Text =" Lab49
- Имя студента " -
Поместите
на форму библиотечный компонент ListBox и
настройте его в соответствии с таблицей свойств
| Свойство | Значение |
|---|---|
| Name | listBoxChoice |
| Items | Упражнение 1. |
| Упражнение 2. | |
| Упражнение 3. | |
| Dock | Fill |
-
Через
панель Properties создайте обработчик для
события SelectedIndexChanged объекта listBoxChoice,
который заполните так
Form frm; // Объявили поле
private void listBoxChoice_SelectedIndexChanged(object sender, EventArgs e)
{
// Привязали номер упражнения к индексу списка
ListBox list = (ListBox)sender;
string formName = "Form" + (list.SelectedIndex + 1);
///////////////////////////////////////////////////
// Следующий код взят из лабораторной работы №47
///////////////////////////////////////////////////
// Читаем коллекцию запущенных форм
FormCollection fc = Application.OpenForms;
bool IsRun = false;
// Перебираем коллекцию
foreach (Form form in fc)
{
// Имя очередной запущенной формы сравниваем с закрепленным за кнопкой
if (form.Name == formName)
{
IsRun = true; // Нашли, что форма запущена, поднимаем флаг
frm = form; // Сохраняем ссылку на запущенную форму для фокуса
break; // Выходим из цикла
}
}
// Если форма не запущена - запускаем
if (!IsRun)
{
switch (formName)
{
case "Form1":
frm = new Form1();
break;
case "Form2":
frm = new Form2();
break;
case "Form3":
frm = new Form3();
break;
}
this.AddOwnedForm(frm); // Сделать новую frm подчиненной Start
// frm.Owner = this; // Алтернативный способ назначить владельца
frm.ShowInTaskbar = false; // Не отображать метку окна в панели задач
frm.Show(); // Показать новую форму
}
else
frm.Focus(); // Передать фокус запущенной форме
}
Листинг
19.1.
Обработчик события SelectedIndexChanged в файле Start.cs
Недостаток данного кода в том, что мы привязали вызов формы упражнения к индексу списка. Примененный здесь способ предотвращения одновременного запуска одного и того же упражнения мы всесторонне рассматривали в предыдущих лабораторных работах.
-
Командой
меню оболочки Project/Add Windows Form добавьте
в проект еще три формы с именами Form1, Form2, Form3
-
Поместите
на каждую форму Form1, Form2, Form3 из панели Toolbox какой-нибудь
элемент управления (например, Button ) и
сразу удалите его, чтобы визуальный редактор явно прописал
свойство Name в файле *.Designer.cs
-
Запустите
приложение и убедитесь в работоспособности механизма вызова
отдельных упражнений
< Самостоятельная работа 28 || Самостоятельная работа 29 || Самостоятельная работа 30 >
