Алгоритмическое мышление при решении задач (на примере языка C#). Шамшев А.Б - 108 стр.

UptoLike

Составители: 

108
//создаем панель, на которой будет происходить рисование
drawPanel = new Panel();
//говорим, что она должна заполнять всю форму
drawPanel.Dock = DockStyle.Fill;
//добавляем обработчик рисования
drawPanel.Paint += new PaintEventHandler(drawPanel_Paint);
//добавляем обработчик "кликов" кнопки мыши
drawPanel.MouseClick += new
MouseEventHandler(drawPanel_MouseClick);
//добавляем обрабаботчик нажатий кнопок мыши
drawPanel.MouseDown += new
MouseEventHandler(drawPanel_MouseDown);
//добавляем обработчик отпусканий кнопок мыши
drawPanel.MouseUp += new
MouseEventHandler(drawPanel_MouseUp);
//добавляем обработчик перемещений мыши
drawPanel.MouseMove += new
MouseEventHandler(drawPanel_MouseMove);
//и добавляем ее на форму
this.Controls.Add(drawPanel);
}
void drawPanel_MouseMove(object sender, MouseEventArgs e) {
if (carringIndex == -1) {
return;
}
figureList[carringIndex].x = e.X;
figureList[carringIndex].y = e.Y;
drawPanel.Invalidate();
}
void drawPanel_MouseUp(object sender, MouseEventArgs e) {
//если пользователь отпустил не левую кнопку мыши
if (e.Button != MouseButtons.Left) {
//то выходим
return;
}
//говорим, что пользователь больше не «таскает» квадрат
carringIndex = -1;
}
void drawPanel_MouseDown(object sender, MouseEventArgs e) {
//если пользователь нажал не левую кнопку мыши,
if (e.Button != MouseButtons.Left) {
//то выходим
return;
}
//проходим по списку фигур от конца к началу
for (int i = figureList.Count - 1; i >= 0; i--) {
//если текущая фигура содержит
точку, в которой
пользователь нажал
if (figureList[i].contains(e.Location)) {