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

UptoLike

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

106
конца к началу. С учетом этих рассуждений следующий шаг в приближении к
решению будет:
public partial class Form1 : Form {
public Panel drawPanel;
public Form1() {
InitializeComponent();
//создаем панель, на которой будет происходить рисование
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);
//и добавляем ее на форму
this.Controls.Add(drawPanel);
}
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)) {
//то это означает, что ее «таскаем»
carringIndex = i;
//и выходим, потому что мы ее нашли
return;
}