Файлы к лабораторной работе Вы можете скачать здесь.
Даже при простом выводе текста на экран часто нужно обеспечить взаимодействие с пользователем. В данной работе мы рассмотрим вопросы вывода текста в колонках и добавление полос прокрутки. По ходу дела затроним другие полезные возможности библиотеки .NET Framework.
Прежде всего мы создадим главную форму, позволяющую управлять вызовом дочерних форм для каждого упражнения.
Оболочка создаст новый подкаталог Petzold4 в выбранном каталоге размещения работы.
Мастер оболочки создаст заготовку, которую мы и будем использовать для испытания примеров, рассматриваемых далее.
using System; namespace Test { /// /// Summary description for Start. /// public class Start { public Start() { // // TODO: Add constructor logic here // } } }Листинг 15.1. Начальная заготовка, созданная мастером
using System; using System.Windows.Forms; using System.Drawing; namespace Test { public class Start : Form { public Start() { // В этом конструкторе будем размещать // настройки формы } } }Листинг 15.2. Начальный код главной формы (файл Start.cs)
Отметьте, что как только мы добавили к нашему классу базовый класс Form, в панели Solution Explorer пиктограмма класса заменилась на значек формы.
namespace Test { public class AppClass { // Точка входа приложения static void Main() { System.Windows.Forms.Application.Run(new Start()); } } }Листинг 15.3. Класс AppClass с точкой входа
Здесь мы из точки входа, расположенной в классе AppClass, создаем экземпляр главной формы вызовом конструктора класса Start.
В этом же окне свойств проекта установите параметр Startup Object в значение Test.AppClass
using System; using System.Windows.Forms; using System.Drawing; namespace Test { public class Start : Form { public Start() { // В этом конструкторе будем размещать // настройки формы this.Text = "Главная форма Лекция №15"; } } }Листинг 15.4. Задание значения строки заголовка формы Start
Теперь мы поместим на главную форму элемент управления ListBox и заполним в нем строки заголовков упражнений, которые нам предстоит выполнить в этой лабораторной работе. Затем мы создадим обработчики событий выбора любого из упражнений, внутри которых будем запускать дочерние формы, соответствующие каждому отдельному упражнению. Упражнения будут демонстрировать возможности классов библиотеки .NET Framework и языка C#.
Мы не увидели тех изменений, которые внесли в форму и ожидали увидеть. Как и прежде, она оказалось пустой. Исправим это.
Мы видим, что оболочка сгенерировала соответствующий код, когда мы создавали пользовательский интерфейс. Весь сгенерированный код разместился в функции InitializeComponent(), но вызова этой функции в коде нет.
public Start() { // В этом конструкторе будем размещать // настройки формы this.Text = "Главная форма Лекция №15"; InitializeComponent(); }Листинг 15.5. Добавление в конструктор класса Start вызова функции инициализации
Теперь нам нужно создать обработчик, который бы при выборе любой строки списка запускал соответствующую форму.
private void listBox_SelectedIndexChanged(object sender, System.EventArgs e) { switch(listBox.SelectedIndex + 1) { case 1: SysInfoFirstTry frm1 = new SysInfoFirstTry(); frm1.Show(); break; case 2: SysInfoColumn frm2 = new SysInfoColumn(); frm2.Show(); break; case 3: SysInfoList frm3 = new SysInfoList(); frm3.Show(); break; case 4: SysInfoPanel frm4 = new SysInfoPanel(); frm4.Show(); break; case 5: SysInfoScroll frm5 = new SysInfoScroll(); frm5.Show(); break; case 6: SysInfoUpdate frm6 = new SysInfoUpdate(); frm6.Show(); break; case 7: SysInfoEfficient frm7 = new SysInfoEfficient(); frm7.Show(); break; } }Листинг 15.6. Обработчик выбора элементов списка