| Украина, Киев | 
                Опубликован: 13.07.2010 | Уровень: специалист | Доступ: платный    
            
                  
        
        Самостоятельная работа 29: 
                  
          Панели инструментов и строка состояния
< Самостоятельная работа 28 || Самостоятельная работа 29 || Самостоятельная работа 30 >
Аннотация: В данной лекции рассматриваются панели инструментов и строка состояния.
Файлы к лабораторной работе Вы можете скачать  здесь.
здесь.
Панели инструментов обычно располагаются вслед за меню приложения и содержат кнопки с пиктограммами, дублирующие команды меню. Внизу рабочей области располагается строка состояния, отображающая информацию о наиболее значимых характеристиках приложения в данный момент.
Заготовка приложения со стартовой формой
Мы еще не знаем, сколько упражнений получится в этой работе, поэтому применим список ListBox, в который можно добавлять сколько угодно опций вызова упражнений.
- 
 Выполните
    команду File/New/Project  и заполните, в
    соответствии с рисунком, мастер создания приложения с именем ToolStatusStrip Выполните
    команду File/New/Project  и заполните, в
    соответствии с рисунком, мастер создания приложения с именем ToolStatusStrip
- 
 Через
    панель Solution Explorer  переименуйте файл Form1.cs  в Start.cs,
    а заголовку окна формы присвойте значение Text =" Lab49
    -  Имя студента " Через
    панель Solution Explorer  переименуйте файл Form1.cs  в Start.cs,
    а заголовку окна формы присвойте значение Text =" Lab49
    -  Имя студента "
- 
 Поместите
    на форму библиотечный компонент ListBox  и
    настройте его в соответствии с таблицей свойств Поместите
    на форму библиотечный компонент ListBox  и
    настройте его в соответствии с таблицей свойств
| Свойство | Значение | 
|---|---|
| Name | listBoxChoice | 
| Items | Упражнение 1. | 
| Упражнение 2. | |
| Упражнение 3. | |
| Dock | Fill | 
- 
 Через
    панель Properties  создайте обработчик для
    события SelectedIndexChanged  объекта listBoxChoice,
    который заполните так Через
    панель 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 Командой
    меню оболочки Project/Add Windows Form  добавьте
    в проект еще три формы с именами Form1, Form2, Form3
- 
 Поместите
    на каждую  форму Form1, Form2, Form3  из панели Toolbox  какой-нибудь
    элемент управления (например, Button ) и
    сразу удалите его, чтобы визуальный редактор явно прописал
    свойство Name  в файле *.Designer.cs Поместите
    на каждую  форму Form1, Form2, Form3  из панели Toolbox  какой-нибудь
    элемент управления (например, Button ) и
    сразу удалите его, чтобы визуальный редактор явно прописал
    свойство Name  в файле *.Designer.cs
- 
 Запустите
    приложение и убедитесь в работоспособности механизма вызова
    отдельных упражнений Запустите
    приложение и убедитесь в работоспособности механизма вызова
    отдельных упражнений
< Самостоятельная работа 28 || Самостоятельная работа 29 || Самостоятельная работа 30 >
 
                             


