{ Text = string.Format("координаты: x={0}, y={1}", e.X, e.Y);
} Для управления графическими объектами нередко используют и клавиату- ру. События клавиатуры KeyUp, KeyDown работают в сочетании с делегатом KeyEventHandler. Например, при регистрации события нажатия клавиши записывается строка
KeyDown += new KeyEventHandler(Form1_KeyUp);
Создается шаблон метода-обработчика, которому передаются: объект-источ- ник события и объект класса KeyEventArgs, который содержит информацию о событии, например: KeyCode – код клавиши для событий KeyDown или KeyUp; Modifiers – какие модифицирующие клавиши (Shift, Alt, Control) были нажаты; Handled – было ли событие полностью обработано.
Эту информацию можно использовать в обработчике, например:
private void Form1_KeyDown(objectsender,KeyEventArgse) { MessageBox.Show(e.KeyCode.ToString(), “клавиша нажата!");
}
Пример1
Выводграфическихпримитивовнаформу.
Создадим новый проект wf351 типа Windows Forms.
Подключим пространство имен System.Drawing.
Разместим на форме поле выбора со списком listBox1. В пункте Item ок- на свойств введем список графических примитивов: Line, Rectangle, FillRec-tangle,Ellipse,FillEllipse,Pie,FillPie (рис. 3.23).
Рис. 3.23. Выбор и рисование графических примитивов на форме
Зарегистрируем событие выбора из списка SelectedIndexChanged. В шаб- лон обработчика введем код выбора и вывода примитивов на форму:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{ Graphics g = this.CreateGraphics(); // создание графического объекта
Pen pn = new Pen(Color.Red,4); // создание пера
Brush br = new SolidBrush(Color.Green); // создание кисти g.Clear(SystemColors.Control); // очистка области цветом формы switch (listBox1.SelectedIndex) // выбор и рисование примитива
{ case 0: g.DrawLine(pn, 150,40, 350,180); break;
case 1: g.DrawRectangle(pn, 150,30, 250,150); break;
case 2: g.FillRectangle(br, 150, 30, 250, 150); break;
case 3: g.DrawEllipse(pn, 150,30, 250,150); break;
case 4: g.FillEllipse(br, 150, 30, 250, 150); break;
case 5: g.DrawPie(pn, 150,30, 200,200, 180,225); break;
case 6: g.FillPie(br, 150,30, 150,150, 0,45); break;
}
}
Протестируем программу. Откорректируем свойства компонентов и код.