Loading...
IlianStefanov2003 avatar IlianStefanov2003 -7 Точки

Catch the button

Здравейте

имам проблем с тази задача-не знам нито какъв код да пиша нито къде да го напише

Някой може ли да ми даде кода и стъпките а аз ще го разуча 

1.Графично приложение: хвани бутона!

Създайте забавно графично приложение „хвани бутона“: една форма съдържа един бутон. При преместване на курсора на мишката върху бутона той се премества на случайна позиция. Така се създава усещане, че „бутонът бяга от мишката и е трудно да се хване“. При „хващане“ на бутона се извежда съобщение-поздрав.

* Подсказка: напишете обработчик за събитието Button.MouseEnter и премествайте бутона на случайна позиция. Използвайте генератор за случайни числа Random. Позицията на бутона се задава от свойството Location. За да бъде новата позиция на бутона в рамките на формата, можете да направите изчисления спрямо размера на формата, достъпен от свойството ClientSize. Можете да ползвате следния код за ориентир:

private void buttonCatchMe_MouseEnter(object sender, EventArgs e)

{

    Random rand = new Random();

    var maxWidth = this.Width - buttonCatchMe.ClientSize.Width;

    var maxHeight = this.Height - buttonCatchMe.ClientSize.Height;

    this.buttonCatchMe.Location = new Point(

        rand.Next(maxWidth), rand.Next(maxHeight));

}

16.*Графично приложение: хвани бутона!

Създайте забавно графично приложение „хвани бутона“: една форма съдържа един бутон. При преместване на курсора на мишката върху бутона той се премества на случайна позиция. Така се създава усещане, че „бутонът бяга от мишката и е трудно да се хване“. При „хващане“ на бутона се извежда съобщение-поздрав.

* Подсказка: напишете обработчик за събитието Button.MouseEnter и премествайте бутона на случайна позиция. Използвайте генератор за случайни числа Random. Позицията на бутона се задава от свойството Location. За да бъде новата позиция на бутона в рамките на формата, можете да направите изчисления спрямо размера на формата, достъпен от свойството ClientSize. Можете да ползвате следния код за ориентир:

private void buttonCatchMe_MouseEnter(object sender, EventArgs e)

{

    Random rand = new Random();

    var maxWidth = this.Width - buttonCatchMe.ClientSize.Width;

    var maxHeight = this.Height - buttonCatchMe.ClientSize.Height;

    this.buttonCatchMe.Location = new Point(

        rand.Next(maxWidth), rand.Next(maxHeight));

}

 

Тагове:
0
Programming Basics
kolioi avatar kolioi 641 Точки

Първо си създаваш един нов проект във вижуъл студио

New Project / Visual C# / Windows Forms Application

След това във формата слагаш един бутон и от Properties променяш

1. (Name) от button1 на buttonCatchMe

2. Text от button1 на Catch me например (това не е задължително да го правиш)

После пак от Properties цъкаш на Events и намираш MouseEnter. Цъкаш два пъти върху него и вижуъл студиото автоматично ти създава метода

private void buttonCatchMe_MouseEnter(object sender, EventArgs e)

Там копираш кода, който са ти дали (и който има бъг, както ще видиш laugh)

Компилираш и стартираш програмката. Като си поиграеш малко с бутона, ще видиш, че някой път излиза извън рамките на прозореца и не се вижда целия. Затова променяш this.Width и this.Height съответно на this.ClientSize.Width и this.ClientSize.Height и работата заспива.

По-нататък, трябва да покажеш някакво съобщение, ако случайно хванеш бутона (може да го хванеш по-лесно ако намалиш размера на прозореца). Това става, като от Properties обработиш събитията MouseClick или MouseHover например. В първия случай трябва да кликнеш върху бутона когато го хванеш, а във втория случай трябва просто да задържиш мишката над него. И написваш нещо от сорта

MessageBox.Show("You caught me!");

 

Have fun!

 

П.П. Свойствата Width и Height на всяка една контрола показват съответно широчината и височината на контролата, което включва рамката (border) и title bar (ако има). Така че правилният начин да се изчислят maxWidth и maxHeight е следния:

var maxWidth = this.ClientSize.Width - buttonCatchMe.Width;
var maxHeight = this.ClientSize.Height - buttonCatchMe.Height;

 

0
14/10/2017 09:16:37
IlianStefanov2003 avatar IlianStefanov2003 -7 Точки

Мерси но стигнах до 2 там кщъдето пише Mouse Enter-нямам Mouse Enter  а имам само Mouse, MouseClick и MouseCaptureChanged

Какво да правя?

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.