Loading...
Woofles avatar Woofles 7 Точки

Няколко въпроса : windows forms

Няма да навлизам в много детайли, само най-общо проблема:

1: Може ли един MouseEventHandler метод да извика друг?
2: Може ли какъвто и да е event (в кавички може би?...) да извика друг?
3: Да изкарам ли просто кода от въпросните евенти в отделни методи? :)

Първият ми въпрос може би е малко ненужен, но от него ми идват и останалите.
Видях че this.****.MouseClick трябва задължително да приема метод MouseEventHandler а аргумета му от своя страна е void със object и MouseEvenArgs аргументи. Неизбежно ли е №3 или алтернативите не си струват труда?
За сега съм се примирил с отделени методи но всички те за сега се викат само от 2-3 места и става... объркващо (макар и леко съкратено, но това не ми е приоритет).

P.S.: Не мисля че въпросът е за "Основи" затова го задавам в Advanced C#. Ще съм доволен и на отговори "да/не" - колкото да знам дали си струва да ровя за игла в купа сено.

0
C# Advanced 04/08/2016 11:53:15
Zakkgard avatar Zakkgard 39 Точки

MouseEventHandler-а е делегат и като дефинираш такъв, дефинираш кой метод ще handle-не съответния евент. На даден евент можеш да subscribe-неш повече от един handler method и можеш да ги викаш един от друг. Колкото до 3, според мен трябва да са отделни методи ако handle-ват различни евенти. Най-добре първо да се запознаеш по-добре с делегати и евенти (имат добри обяснения в ’C# 6 in a nutshell' или примерно C# книгата на apress). Ако имаш конкретен проблем, пусни код ;)

0
Woofles avatar Woofles 7 Точки

Проблемът ми накратко беше следният: Калкулатор, в който натискането на втори бутон [+,-,*,/] преди Enter, да изпълнява действията за Enter. Има малко условности в моя случай, заради повече полета и прехвърляне на резултати от едно в друго, но като цяло е това.
Да кажем че разбрах това което обясни :) Сигурен съм че няма да го запомня за дълго, но и за сега нямам нужда да си надхвърлям толкова нивото.
В известен смисъл това което правя е да делегирам права на MouseEventHandler да изпълни "събскрайбнатия" (+=) метод(и) при настъпването на даденото събитие (*.MouseClick в случая). Така ли? И освен това мога на един KeyPress евент да събскрайбна няколко метода (или един, но няколко пъти), чиито права за изпълнение да са делегирани на KeyPressEventHandler. Малко ми беше объркващо първоначално защо ще се ползва += щом от Properties не можем да зададем повече от един метод на евент.

Благодаря за препоръките и книгите, ще се опитам да се сдобия с някоя от тях. Сега се захванах с Minesweeper, но там просто няма да мине без сериозно четене :)

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