Avatar billede koppelgaard Praktikant
24. marts 2008 - 11:31 Der er 4 kommentarer og
1 løsning

Keypreview med virker ikke med piletaster

Hej Alle
Jeg har et lille problem, som ofte har drillet mig.
Jeg har en form, hvor jeg har tilføjet flere knapper.
Jeg har sat keypreview til sand og tilføjet en event


private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            string key = e.KeyCode.ToString();
        }     

Desværre er det eneste, der sker når jeg bruger piletasterne at fokus flytter sig fra knap til knap. Eventen indtræder åbenbart ikke.
Når der ikke er nogen knapper i formen virker den.

Ved andre taster en piletasterne virker eventen også.


Hvad kan jeg gøre ?
Michael
Avatar billede koppelgaard Praktikant
24. marts 2008 - 12:02 #1
Jeg har lige fundet ud af at jeg kan tage eventen på keyUp
private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            string key = e.KeyCode.ToString();
        }   

men hvordan undgår jeg så at fokus flytter sig fra knap til knap?
Jeg har stillet tabstop til false for alle knapper.



Michael
Avatar billede koppelgaard Praktikant
24. marts 2008 - 12:35 #2
Trækker min ord i mig.
ovenstående virker kun med pil til højre og pil til venstre.

Ikke pil op og pil ned.

er der nogen der har et bud ??
Please

Michael
Avatar billede hmortensen Nybegynder
24. marts 2008 - 15:04 #3
Det kan gøres med at messagefilter:

public partial class Form1 : Form, IMessageFilter
{
  public Form1()
  {
    InitializeComponent();
    Application.AddMessageFilter(this);
  }

  public bool PreFilterMessage(ref Message m)
  {
    //0x100 er KeyDown
    if (m.Msg == 0x100)
    {
      bool hndl = true;
      switch ((Keys)(int)m.WParam & Keys.KeyCode)
      {
        case Keys.Left:
          label1.Text = "Left arrow";
          break;
        case Keys.Right:
          label1.Text = "Right arrow";
          break;
        case Keys.Up:
          label1.Text = "Up arrow";
          break;
        case Keys.Down:
          label1.Text = "Down arrow";
          break;
        default:
          hndl = false;
          break;
      }
      return hndl;
    }
    else
      return false;
  }
}
Avatar billede koppelgaard Praktikant
24. marts 2008 - 17:08 #4
Supert!!
Det er virkelig noget der har drillet mig.
Glad for at det endelig er løst!
Send et svar!

Michael
Avatar billede hmortensen Nybegynder
24. marts 2008 - 19:49 #5
Og et svar :)
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