Проект 2: Допълнителни знания

Управление от клавиатурата

ASCII код – Всеки символ на клавиатурата се кодира с число. Тези числа са записани в така наречената ASCII таблица, която ни дава съответствие на символ и число. Например кодът на малко латинско ‘а’ е 97, на малко латинско ‘b’ е 98 и тн.

Събитието KeyPress – За да може потребителя да управлява програма с клавиатурата трябва да работим със събитието KeyPress от Form1 – Form1_KeyPress. Към него имаме параметър e, който определя какъв клавиш е натиснат.

Пример 1: Искаме да направим програма, която ни показва на всеки символ съответния му ASCII код.

keypress event - result 1

Използваме събитието Form1_KeyPress и чрез параметър на това събитие e, намираме кода на натиснатия символ и самия символ. е.KeyChar ни дава като резултат символа, който е натиснат. А вградената във VB2010 функция Asc(<символ>) ни връща като резултат ASCII кода на <символ>.

keypress event - code 1

Пример 2: Искаме да направим програма, която позволява да управляваме картинка (PictureBox), чрез клавишите на клавиатурата  ’a', ‘s’, ‘d’, ‘w’ (ляво, долу, дясно, горе).

keypress - code 2

Работа с колекция от контроли – For Each 

Пример: Да речем, че искаме да запишем последователно числата от 1 до 5 в 5 етикета.

for each - before   for each - after

Разполагаме си 5 етикета и чрез цикъл For Each и колекцията Me.Controls обхождаме всички етикети и записваме съответното число в него.

For Each - code

 Анимация и движещи се обекти във VB 2010 – Таймер

Ако искаме да направим така че една картинка да се движи в нашата програма трябва да използваме таймер. Таймерът изпълнява даден код през определен интервал от време. За да се движи една картинка трябва да много малък интервал от време, например 10 милисекунди да придвижваме картинката с 10 пиксела надясно (PictureBox1.Left = PictureBox1.Left + 10).

Таймерът представлява контрола – Timer. За сега ще разгледаме 2 важни негови свойства:

Enabled – показва дали таймерът е активен или не. Приема стойност True и False.

Interval – показва през какъв интервал от време (в милисекунди) да се изпълнява кода на таймера. Например, ако искаме кода да се изпълнява на всеки 1 секунда, трябва да имаме Interval = 1000 (1000 милисекунди = 1 секунда).

Пример: Искаме да направим картинка, която като я натиснем започва да се движи плавно като в анимация надясно.

Трябва да разположим контролата Timer в нашия проект. Въвеждаме в него кода, който премества картинката с 10 пиксела надясно. След това пишем код, който да активира таймерът при натискане на картинката.

Timer - code 1

Ако искаме да направим, така че картинката да се движи по-бързо можем да го направим по 2 начина. Да увеличим пикселите, с които да преместваме надясно картинката (например от 10 да ги направим 20). Или да намалим интервалът от време, през който се изпълнява кода в таймера (например от 100 да напраим Interval = 50).

 Издърпване и пускане – Drag and Drop

Пример: Искаме да направим програма, която ни позволява да издърпаме текстово поле и като го пуснем в етикет – съдържанието на текстовото да се копира в етикетът.

drag and drop - result

1) Издърпване (Drag): Първо трябва да направим, така че да можем да издърпваме (Drag) текстовото поле. Искаме да можем да го издърпваме като натиснем с мишата върху текстовото поле, т.е. използваме събитието TextBox1_MouseDown и там трябва да въведем кода за активиране на издърпване и пускане - TextBox1.DoDragDrop(TextBox1, DragDropEffects.All).

2) Пускане (Drop): За да можем да пускаме в етикета трябва да променим свойството му AllowDrop = True.

След това трябва да въведем подходящ код за събитието Label1_DragEnterLabel1.Text = TextBox1.Text

drag and drop - code 1

Повече информация: http://msdn.microsoft.com/en-us/library/za0zx9y0.aspx

Comments are closed.