Zachycení stlačení klávesy na formuláři   zodpovězená otázka

Komponenty, WinForms

Zdravím,

má následující problém. Mám formulář s více objekty (textboxy, datagridview, button) a potřeboval bych pokud stisknu konkrétní klávesu (např. F2), aby proběhla nějaká událost. Zkoušel jsem použít událost Keydown na formuláři, ale pokud má focus na textbox, tak se nic nestane (resp. nastane událost keydown toho textboxu). Lze nějak jednoduše zachytit událost při stisknutí klávesy, když je aktivní konkrétní formulář?

Díky za nápady.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Právě k tomu slouží vlastnost KeyPreview formuláře. Pokud tuto vlastnost nastavíte na True, potom dostane formulář zprávy ohledně stisknutých kláves jako první (až potom ostatní ovládací prvky). Funguje to v rámci formulářů, ne v rámci celé aplikace. Já to běžně používám pro ošetřování klávesových zkratek (ty odchytávám na formuláři v události KeyDown).

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak této vlastnosti jsem se nevšimnul, a že jsem toho prolezl. :-)

Diky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

neexistuje nějaké podobné řešení i na MouseUp ?

Jde mi o otevírání Kontextového menu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Stejné kontextové menu na celém formuláři je ... divné. Již "z výroby" funguje třeba pravé tlačítko menu na textboxy a tak dále, takže když to přeprásknete svým řešením, tak uživatele zmatete.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To by se nestalo, protože contex.menu takového controlu bude mít přednost a ten vlastní se neotevře. Alespoň se to tak chovalo když jsem zkoušel přiřadit pro takový control událost na otevření mého menu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback