Сохраните текущее состояние проекта, выбрав пункт Сохранить все меню Файл или воспользовавшись клавишей на панели быстрого доступа .
Создайте в том же решении новый проект, укажите его имя Ex2 и установите его стартовым.
Решим поставленную задачу. Во‑первых, отметим, что с помощью события Click невозможно определить, какая кнопка мыши была нажата. Параметр e в этом событии имеет тип EventArgs, который не предоставляет подобной информации. Для выполнения задания мы воспользуемся другим событием – MouseClick. Параметр e в этом событии имеет тип MouseEventArgs и предоставляет гораздо больше информации, например какая кнопка мыши была нажата, сколько раз, на сколько было повернуто колесико мыши, а также координаты мыши в момент генерации события.
Для получения различных цветов для формы воспользуемся методом FromArgb () класса Color. Будем передавать этому методу три параметра – уровни интенсивности красного, зеленого и синего цветов, соответственно (Red, Green, Blue). Для каждого уровня интенсивности цвета существует 256 возможных значений. Например, метод с параметрами (255, 0, 0) возвращает цветовое значение для красного цвета.
|
|
Для получения случайного цвета все три параметра будем задавать случайными числами. В языке C # для генерации случайных чисел предусмотрен специальный класс Random. Для того чтобы воспользоваться методами этого класса, необходимо создать экземпляр класса с помощью конструктора (используя new). Для выбора случайного числа из диапазона [0, n –1] будем использовать метод Next (n). Описать переменную Rand нужно в классе формы:
public partial class Form1: Form
{
Random Rand;
…
В конструкторе формы (методе, имя которого совпадает с именем формы) добавьте оператор, инициализирующий генератор случайных чисел.
public Form1()
{
InitializeComponent();
//Инициализация генератора случайных чисел
Rand = new Random();
}
В обработчике события MouseClick при щелчке левой кнопкой мыши будем формировать три случайных числа и устанавливать цвет формы.
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
//Определение трех целых случайных чисел [0..255]
int a = Rand.Next(256);
int b = Rand.Next(256);
int c = Rand.Next(256);
BackColor = Color.FromArgb(a, b, c);
}
}
Запустите приложение. Убедитесь, что после каждого щелчка по форме левой кнопкой мыши цвет изменяется произвольным образом.
Упражнение 3.3. Напишите приложение, в котором при нажатии на левую кнопку мыши происходит смена цвета с красного на синий и, наоборот, с синего на красный.