Avatar billede tbrg Novice
17. november 2006 - 22:20 Der er 9 kommentarer og
1 løsning

LinkLabel "stjæler" focus

Jeg sidder og roder med et lille spil og er (endnu engang) rendt ind i et problem.

På min Form har jeg en Button (btnStart) til at starte spillet og en LinkLabel, som viser info.

Jeg vil gerne have, at man som alternativ til at klikke på btnStart, kan trykke på Return-tasten på tastaturet for at aktivere spillet.

Som det er nu, aktiveres LinkLabel, når man trykker på Return. Hvordan ændrer jeg det?

btnStart.Focus() virker ikke.
Avatar billede cpufan Juniormester
17. november 2006 - 22:36 #1
However on an ASP.NET Web page, pressing Enter resubmits the form to the server, but actually does nothing... which is pretty useless, really.

So, how do you set a default button to be clicked when the user presses Enter? Simply add the following line to your page's Load event, replacing "btnSearch" with the name of your button. It uses a hidden Page method called RegisterHiddenField and works splendidly:

Page.RegisterHiddenField("__EVENTTARGET", "btnSearch")

http://www.hanselman.com/blog/PermaLink.aspx?guid=b2f63549-81fa-4895-b3af-c243d9d1fdd2
Avatar billede tbrg Novice
17. november 2006 - 22:46 #2
Ok. Jeg fik vist ikke formuleret mig klart nok. Det jeg arbejder med er en applikation, ikke en web side.
Avatar billede helmet Nybegynder
17. november 2006 - 23:47 #3
Det gør du ved og sætte form propertien AcceptButton til btnStart
Avatar billede tbrg Novice
18. november 2006 - 00:55 #4
Har prøvet det uden held. Det er stadig LinkLabel'en der bliver aktiveret. LinkLabel og Button er i hvert sin Panel container. Jeg ved ikke om det har noget at sige.
Avatar billede bulgroz Nybegynder
18. november 2006 - 07:50 #5
Har lige forsøgt det samme, og det ser ud til at der er et problm med Tab-order. Selvom du sætter AcceptButton på din form til din knap, stjæler LinkLabelen (som du siger) focus fra knappen.

Prøv blot at ændre tab order, så vil det virke (for det gør det her ;-). Men det svarer naturligvis ikke på hvorfor problemet eksisterer.
Avatar billede helmet Nybegynder
18. november 2006 - 10:10 #6
Men hvorfor overhoved bruge LinkLabel så, den virker jo som en knap og derfor vil acceptbutton ikke blive kaldt når LinkLabel står med fokus (Står før i tab-order som bulgroz siger).
Kan godt få btnStart til og få focus under opstart ved og køre btnStart.Focus() i en sen event fx form_shown.
Avatar billede helmet Nybegynder
18. november 2006 - 10:33 #7
Damn det her er underligt. Sad lige og undrede mig over hvorfor der ingen tabstop properties var på linklabels, fandt en artikel om at den mangler i designmode men at den kan sættes via code, det prøvede jeg så men intellisense kom ikke med den som et forslag. Kigger jeg i hjælpen til linklabel findes den, så efter og have skrevet den alligevel, og ignoreret intellisense, så kan jeg få pillet linklabel ud af tab-order.

Altså linkLabel.TabStop = false;
Avatar billede tbrg Novice
18. november 2006 - 16:48 #8
Så lykkedes det. Jeg byttede rundt på Tab-order på de to Panels, der er containers for hhv. linkLabel og btnStart. Herefter er det ikke noget problem at styre det med Focus(). At sætte TabStop = false lod ikke til at gøre nogen forskel.
Jeg forstår dog stadig ikke, hvorfor Focus() ikke virkede ved start af programmet. Jeg havde prøvet det i Formens constructor efter InitializeComponent(). Oh, well...
I skal ha' mange tak for jeres input.
Bulgroz, det var vist din løsning, jeg brugte, så du må gerne smide et svar.
Avatar billede bulgroz Nybegynder
19. november 2006 - 16:54 #9
Nemlig ja.
Og at ikke bruge LinkLabel er vel heller ingen løsning hvis dit requirement siger at det er det du skal anvende.
Jeg har dog ikke selv haft tid til at finde en pænere løsning end at ændre Tab order på de øvrige kontroller (men der er jo nok en fornuftig løsning et sted ;-).
Avatar billede tbrg Novice
19. november 2006 - 17:01 #10
Det er der nok, men så længe det fungerer, så lever jeg med det som det er. Jeg er igang med mit næste projekt, så jeg gider ikke rode mere med det. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB