Этап 4. На дочерних формах рисуются круг и текст
К курсовой работе 2-го курса
Поэтапная разработка простой программы, состоящей из трех окон на языке C#
Задание
Разработать программу, состоящую из прикладного окна Upr и двух дочерних окон: Model и Info.
Прикладное окно Upr содержит одну кнопку Ок.
В дочернем окне Model рисуется круг синего цвета.
В дочернем окне Info выдается строка, указывающая толщину линии круга.
При нажатии на кнопку Ок изменяется (увеличивается или возвращается к прежнему размеру) толщина круга в дочернем окне Model и размер этой толщины выдается в строке дочернего окна Info.
О программе
В программе создадим поэтапно три объекта-окна и объект-кнопку. При нажатии на кнопку специальная функция-обработчик этой кнопки определит размер толщины круга и передаст этот размер дочерним окнам и потребует перерисовать круг и строку.
Программу разработаем поэтапно.
На первом этапе создадим прикладное окно Upr. Убедившись, что в выполняющейся программе появилось окно, перейдем ко второму этапу разработки.
На втором этапе создадим дочерние окна Model и Info. Дочерние окна создадим с помощью оператора new в конструкторе прикладного окна.Таким образом, объект прикладного окна содержит два объекта дочерних окон. Убедившись, что в выполняющейся программе появились и дочерние окна, перейдем к третьему этапу разработки.
На третьем этапе создадим в прикладном окне объект-кнопку but. Убедившись, что в выполняющейся программе появилась кнопка в прикладном окне, перейдем к четвертому этапу разработки.
На четвертом этапе изменим объекты дочерних окон Model и Info.
Теперь в дочернем окне Model рисуется круг, а в дочернем окне Info выдается строка, указывающая толщину круга. Убедившись, что в выполняющейся программе в дочерних окнах появились круг со строкой, перейдем к пятому этапу разработки
Пятый этап интересный. Здесь мы реализуем функцию –обработчик ClickBut() кнопки. Для чего воспользуемся событием Click кнопки и делегатом EventHandler. В обработчике ClickBut(), используя ссылки mod и inf на объекты дочерних окон, изменим толщину d круга и выполним функции Invalidate() этих окон, обеспечивающих выполнение функций OnPaint() перерисовки этих окон.
Этап 1. Каркас приложения с основной формой
using System;
using System.Drawing;
using System.Windows.Forms;
namespace csKurs2_1
{
class Model: Form
{
}
class Inf: Form
{
}
public class Upr : System.Windows.Forms.Form
{
public Upr ( )
{
this.Size = new System.Drawing.Size(300,300);
this.Text = "Upr";
}
[STAThread]
static void Main()
{
Application.Run(new Upr());
}
}
}
Приложение содержит три окна, порождённых из класса Form. Классы Model и Inf пустые и на данном этапе не задействованы. Используется только основной класс Upr, объект которого создаётся в аргументе статической функции Run класса Application. Функция Run высвечивает его в виде прикладного окна на экране. В конструкторе класса Upr прикладному окну присваивается заголовок и задаются его размеры.
Этап 2. Основная форма имеет две дочерние формы
. . .
public class Upr : System.Windows.Forms.Form
{
public Upr ( )
{
this.Size = new System.Drawing.Size(300,300);
this.Text = "Upr";
Model mod= new Model ( );
mod.Text= "Model";
Mod.Show ( );
Inf inf= new Inf ( );
inf.Text= "Information";
Inf.Show ( );
}
[STAThread]
static void Main()
{
Application.Run(new Upr());
}
}
}
Конструктор Upr основной формы создаёт объекты дочерних форм, определяет их заголовки и показывает эти формы на экране с помощью функции Show из наследуемого класса Form.
Этап 3. На основной форме появляется кнопка
. . .
public class Upr : System.Windows.Forms.Form
{
Model mod;
Inf inf;
Button but;
public Upr ( )
{
this.Size = new System.Drawing.Size(300,300);
this.Text = "Upr";
but= new Button ( );
but.Text="OK";
but.Location= new Point (10,10);
but.Size= new Size(30,20);
This.Controls.Add (but);
. . .
}
[STAThread]
static void Main()
{
Application.Run(new Upr());
}
}
}
Создана кнопка but типа Button и подсоединена к управляющим элементам основной формы с помощью свойства Controls.
Этап 4. На дочерних формах рисуются круг и текст
using System;
using System.Drawing;
using System.Windows.Forms;
namespace csKurs2_4
{
class Model: Form
{
private int d=3;