Реализуем два разных обработчика события MouseClick. Второй обработчик по щелчку кнопкой мыши просто отображает окно сообщения. Метод ShowClick подключается к событию аналогично методу Form1_MouseClick в файле Form1.Designer.cs.
// Программа 2: Эта версия имеет два обработчика событий для MouseClick
public partial class Form1: Form {
float x, y;
Brush pStdBrush;
Graphics poGraphics;
public Form1() {
InitializeComponent();
x=10;
y=20;
pStdBrush = new SolidBrush(Color.Black);
poGraphics = this.CreateGraphics();
this.Text = "Программа 3";
this.Show();
poGraphics.DrawString("Hello, Window Forms", this.Font, pStdBrush, x, y);
}
private void Form1_MouseClick(object sender, MouseEventArgs e) {
x = (float)e.X; y = (float)e.Y;
poGraphics.DrawString("Hello, Window Forms", this.Font, pStdBrush, x, y);
}
void ShowClick (object pSender, MouseEventArgs e) {
MessageBox.Show("Mouse clicked!!'");
}
}
События MouseDown и Keypress
Введем в наш пример обработку еще одного события, а именно, события KeyPress, а также покажем, как в событии MouseDown различать, какая кнопка была нажата, левая или правая (программа 3).
Обработка событий, вызванных правой и левой кнопкой мыши
Для того чтобы определить, какая кнопка мыши была нажата, нужно использовать свойство Button параметра MouseEventArgs. Перепишем методы обработчика событий:
private void Form1_MouseClick(object sender, MouseEventArgs e) {
if (e.Button == System.Windows.Forms.MouseButtons.Left) // если левая кнопка
{
x = (float)e.X; y = (float)e.Y;
poGraphics.DrawString("Hello, Window Forms", this.Font, pStdBrush, x, y);
}
}
void ShowClick (object pSender, MouseEventArgs e) {
if (e.Button == System.Windows.Forms.MouseButtons.Right) // если правая кнопка
{
MessageBox.Show("Mouse clicked!!'");
}
}
}
Событие Keypress
Добавим событие KeyPress. При нажатии пользователем на клавишу, в конец строки приветствия будет добавлен соответствующий символ. Вместо класса String используется класс StringBuilder, который более эффективен в этой ситуации.
public partial class Form1: Form {
float x, y;
Brush pStdBrush;
Graphics poGraphics;
StringBuilder pStr;
String s;
public Form1() {
InitializeComponent();
x=10;
y=20;
pStdBrush = new SolidBrush(Color.Black);
poGraphics = this.CreateGraphics();
this.Text = "Программа 4";
this.Show();
pStr = new StringBuilder("Hello, Window Forms");
s = pStr.ToString();
poGraphics.DrawString(s, this.Font, pStdBrush, x, y);
}
private void Form1_MouseClick(object sender, MouseEventArgs e) {
if (e.Button == System.Windows.Forms.MouseButtons.Left) // если левая кнопка
{
x = (float)e.X; y = (float)e.Y;
poGraphics.DrawString(s, this.Font, pStdBrush, x, y);
}
}
void ShowClick (object pSender, MouseEventArgs e) {
if (e.Button == System.Windows.Forms.MouseButtons.Right) // если правая кнопка
{
MessageBox.Show("Mouse clicked!!'");
}
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e) {