- •Основи Windows.Forms.
- •Створення віконного додатка в c#.
- •Додавання нових елементів керування на форму.
- •Визначення переміщення покажчика миші за формою.
- •Генерація випадкових чисел:
- •Щоб визначити роздільну здатність екрана в c# .Net ми будемо використовувати:
- •Створення другого віконного додатка в c#
- •Додавання меню в додаток c# .Net .
- •Створення панелі керування (Toolbar) в c# .Net .
- •Створення вікна вибору файлу в c# .Net .
- •Відкриття вікна вибору файлу й завантаження зображення в c# .Net.
- •Додавання й виклик додаткового діалогового вікна.
Додавання нових елементів керування на форму.
Отже, після того як ви ввели ім'я проекту, установили необхідний шаблон і натиснули кнопку ОК, MS Visual Studio автоматично створить каркас віконного додатка, після чого ми зможемо додати на нього нові віконні елементи. Для цього необхідно перетягнути необхідний віконний елемент із вікна інструментів (ToolBox).
Нашому вікну буде потрібно 2 елементи поля для введення, у які ми будемо виводити координати покажчика миші, що полегшить нам розуміння роботи програми. У центрі вікна буде перебувати напис, що ми створимо за допомогою елемента Label. Знизу будуть розташовані 2 кнопки.
Трохи розтягніть заготовку вікна. Якщо ви натиснете на нього правою кнопкою, то відкриється контекстне меню. У ньому натисніть на пункті властивості, після чого ви зможете вивчити різні параметри вікна, які ви можете змінити. На малюнку 3 зображені самі (як правило) необхідні властивості:
Малюнок
3.
Трохи розтягніть заготовку вікна й додайте всі необхідні елементи. На малюнку 4 ви можете побачити їх у вікні ToolBox:
Малюнок
4.
Перейдіть у властивості рядка Label, де зміните текст на «Ви прагнете зробити світ краще?». Так само змініть тип шрифту, для цього знайдіть властивість Font (малюнок 5),
Малюнок
5.
після чого встановіть тип шрифту Tahoma, ширину шрифту Bold і розмір рівний 16 (малюнок 6).
Малюнок
6.
Далі змініть текст на кнопках, використовуючи властивість Text. Отримана заготовка вікна програми буде виглядати наступним чином (малюнок 7)
Малюнок
7.
Тепер розглянемо технічну частину роботи нашої програми.
Спочатку ми додамо оброблювач події переміщення миші, і реалізуємо вивід її координат x , y у два створені поля введення.
Далі ми створимо функції оброблювачі кліка по кожній із клавіш миші (особливо старанні користувачі все-таки зможуть потрапити по кнопці «Так, звичайно!»).
Дальше ми додамо код, що реалізує випадкове переміщення вікна в тому випадку, якщо курсор наблизитися до кнопки «Так, звичайно!».
Визначення переміщення покажчика миші за формою.
Клацніть безпосередньо на частині форми створюваного додатка (НЕ на одному з елементів). Тепер перейдіть до властивостей форми, за допомогою правого кліка мишею -> контекстне меню властивості. Тепер необхідно перейти до списку можливих подій, які може одержувати дане вікно – для цього клацніть на кнопці «Event» (події) , як показано на малюнку 8:
Малюнок
8.
Коли користувач пересуває покажчик миші по нашому вікну, операційна система посилає повідомлення програмі, з поточними координатами покажчика. Вони нам і потрібні. Щоб призначити оброблювач даної події знайдіть рядок MouseMove (малюнок 9), після чого зробіть подвійний клік в поле праворуч від неї – автоматично додасться оброблювач події руху миші й додасться функція Form1_MouseMove у коді нашої програми.
Малюнок
9.
Додайте в цю функцію 2 рядки, щоб її код став виглядати в такий спосіб.
private void Form1_MouseMove(object sender, MouseEventArgs e) {
// переводим координату X у рядок і записує в поля уведення textBox1.Text = e.X.ToString(); // переводимо координату Y у рядок і записує в поля уведення textBox2.Text = e.Y.ToString();
}
Дана функція, що обробляє подію переміщення покажчика миші над формою одержує 2 параметри – об'єкт відправник й екземпляр класу MouseEventsArgs , що містить інформацію про координати покажчика миші й інших поточних властивостях. textBox1 й textBox2 це екземпляри класу textbox, що реалізують керування нашими елементами поля для уведення. Член даних екземплярів Text дозволяє встановити текст у даних полях. Таким чином, якщо тепер відкомпілювати програму (F5) – при переміщенні покажчика миші за формою вікна ми будемо бачити координати покажчика (усередині форми), які будуть безупинно змінюватися.
Тепер повернемося до заготовки нашої форми – для цього клацніть на відповідній закладці (Form1.cs [Конструктор]), як показано на малюнку 10:
Малюнок
10.
Зробіть подвійний клік по першій кнопці – Visual Studio автоматично додасть код обробки даної кнопки при натисканні. Додайте наступні рядки коду:
private void button1_Click(object sender, EventArgs e) {
// Вивести повідомлення з текстом "Ви старанні" MessageBox.Show( "Ви старанні!!"); // Завершити додаток Application.Exit();
}
Тепер знову поверніться до конструктора й додайте другу кнопку, так само за допомогою подвійного кліка по ній. Вона буде містити наступний код:
private void button2_Click(object sender, EventArgs e) {
// Вивести повідомлення, з текстом "Ми не сумнівалися у вашій байдужності" // другий параметр - заголовок вікна повідомлення "Увага" // MessageBoxButtons.OK - тип розташовуваної кнопки на формі повідомлення // MessageBoxIcon.Information - тип повідомлення - буде мати іконку "інформація" і відповідний звуковий сигнал MessageBox.Show("Ми не сумнівалися у вашій байдужності","Увага", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Всі параметри передані у фукнцію Show закоментовані у вихідному коді. Тепер нам залишилося тільки реалізувати переміщення вікна в той момент, коли мишка наближатиметься до кнопки «Так, звичайно». Для цього ми додамо код у функцію:
private void Form1_MouseMove(object sender, MouseEventArgs e)
Принцип дуже простий - одержуючи координати руху миші, ми перевіряємо чи не входять вони у квадрат, що окреслює нашу кнопку з невеликим запасом. Якщо так - то ми генеруємо 2 випадкові числа, які будуть використані для переміщення вікна. Ми б могли просто відслідковувати повідомлення про наведення покажчика миші на кнопку, але воно приходить із помітною затримкою, у зв'язку із чим користувач без особливої праці натисне на кнопку так, тому ми будемо просто обчислювати влучення курсору в зону навколо кнопки. Так само, нам знадобитися оголосити трохи "робочі" змінні, які ми будемо надалі використовувати.
