get {
return(next);
}
set {
next = value;
}
}
}//class Linkable
/// <summary>
/// Класс TwoLinkable задает элементы с двумя ссылками
/// </summary>
public class TwoLinkable
{
public TwoLinkable()
{
prev = next = null;
}
/// <summary>
/// закрытые атрибуты класса
/// </summary>
TwoLinkable prev, next;
Figure item;
/// <summary>
/// процедуры свойства для доступа к полям класса
/// </summary>
public Figure Item
{
get
{
return(item);
}
set
{
item = value;
}
}
public TwoLinkable Next
{
get
{
return(next);
}
set
{
next = value;
}
}
public TwoLinkable Prev
{
get
{
return(prev);
}
set
{
prev = value;
}
}
}//class TwoLinkable
}
Организация интерфейса
Создадим теперь интерфейс, позволяющий конечному пользователю работать с объектами наших классов. Как всегда, интерфейс создавался вручную в режиме проектирования. На форме я создал меню с большим числом команд и инструментальную панель с 18 кнопками, команды которых повторяли основную команду меню. Описывать процесс создания интерфейса не буду — он подробно рассмотрен в предыдущей главе. Поскольку вся работа по созданию интерфейса транслируется в программный код формы, то просто приведу этот достаточно длинный текст почти без всяких купюр:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentMode1;
using System.Windows.Forms;
using System.Data;
using Shapes;
namespace Final
{
/// <summary>
/// Эта форма обеспечивает интерфейс для создания,
/// рисования, показа, перемещения, сохранения в списке
/// и выполнения других операций над объектами семейства
/// геометрических фигур. Форма имеет меню и
/// инструментальные панели.
/// </summary>
public class Form1 System.Windows.Forms.Form
{
//fields
Graphics graphic;
Brush brush, clearBrush;
Pen pen, clearPen;
Color color;
Figure current;
TwoWayList listFigure;
private System.Windows.Forms.MainMenu mainMenu1
private System.Windows.Forms.ImageList imageList1;
private System.Windows.Forms.ToolBar tooiBar1
private System.Windows.Forms.MenuItem menuItem1
// аналогичные определения для других элементов меню
private System.Windows.Forms.MenuItem menuItem35;
private System.Windows.Forms.ToolBarButton toolBarButton1;
// аналогичные определения для других командных кнопок
private System.Windows.Forms.ToolBarButton toolBarButton18;
private System.ComponentMode1.IContainer components;
public Form1()
{
InitializeComponent ();
InitFields();
}
void InitFields()
{
graphic = CreateGraphics ();
color = SystemColors.ControlText;
brush = new SolidBrush(color);
clearBrush = new SolidBrush(SystemColors.Control);
pen = new Pen (color);
clearPen = new Pen(SystemColors.Control);
listFigure = new TwoWayList();
current = new Person (20, 50, 50);
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
if(disposing)
{
if (components!= null)
{
components.Dispose ();
}
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code