Опубликован: 13.07.2010 | Доступ: свободный | Студентов: 891 / 20 | Оценка: 4.40 / 4.20 | Длительность: 77:34:00
Тема: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги:
Самостоятельная работа 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 >