---
title: "Problem med KeyPressedCode"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/174946-problem-med-keypressedcode"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "saw"
published: "2008-10-24T14:00:07.000Z"
updated: "2008-10-25T10:25:49.000Z"
replies: 6
views: 559
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/174946-problem-med-keypressedcode"
---

# Problem med KeyPressedCode

## #1 — saw, 2008-10-24T14:00Z

Via en timer så ligger en class hela tiden och kolla vilka knappar som trycks 
ner.

```
if (e.KeyPressedCode == 13 && !e.ShiftKeyPressed)
            {
                bool cancel = false;
                if (EnterKeyEvent != null)
                {
                    EnterKeyEventArgs args = new EnterKeyEventArgs();
                    EnterKeyEvent(this, args);
                    cancel = args.Cancel;
                }
                e.ReturnValue = !cancel;
            }
```

Jag tror att detta fungerar. Mitt problem, är att jag ville ha med mera
allternativ t ex för delite, men jag kan inte få den att fungera.
Jag försökte att lägga in en MessageBox, för att få se vilka numer som vilka
tangenter står för, men ingenting händer.
Tips?

Permalänk: https://www.webforum.nu/p/174946

## #2 — Phorpher, 2008-10-24T14:06Z

Används Keys-enumen istället.

```
if(e.KeyPressedCode == Keys.Enter)
```

Permalänk: https://www.webforum.nu/p/2150846

## #3 — saw, 2008-10-25T07:39Z

Det är märkvärdigt, men jag får det inte att fungera.
Denna class är kopplad till en timers tick

```
private void SetupKeyListener()
        {
            if (!setup)
            {
                webBrowser1.Document.Body.KeyDown += new HtmlElementEventHandler(Body_KeyDown);
                setup = true;
            }
        }
```

Jag vet att den fungarar, jag la in en messageboxså..
Men här fungerar det inge

```
private void Body_KeyDown(object sender, HtmlElementEventArgs e)
        {
            //if (e.KeyPressedCode == (int)Keys.Delete)
            MessageBox.Show("Body_KeyDown");

            if (e.KeyPressedCode == 13 && !e.ShiftKeyPressed)
            {
                bool cancel = false;
                if (EnterKeyEvent != null)
                {
                    EnterKeyEventArgs args = new EnterKeyEventArgs();
                    EnterKeyEvent(this, args);
                    cancel = args.Cancel;
                }
                e.ReturnValue = !cancel;
            }
            label1.Text = e.KeyPressedCode.ToString();
        }
```

Här händer ingenting. Jag har keypreview till true såväll i formen som i mdi-
formuläret.

Det verkar som om prenumenationen av webBrowser1.Document.Body.KeyDown += new HtmlElementEventHandler(Body_KeyDown);
inte" tar".
Några idéer?

Permalänk: https://www.webforum.nu/p/2150878

## #4 — Phorpher, 2008-10-25T08:32Z

Låter som ett fokusproblem. Har din webbrowser-kontroll fokus när du försöker trycka på en tangent?

Permalänk: https://www.webforum.nu/p/2150883

## #5 — saw, 2008-10-25T10:00Z

Även om jag i SetupKeyListener lägger in webBrowser1.Focus(); så händer ingenting.
Jag hadde den i bRedigera, en knapp som gör att webBrowser1 kommer i redigeraläge.

```
SetupBrowser("On");
            label1.Text = "";
            ny = false;
            BytEnable();
            webBrowser1.Focus();
            string sText = richTextBox1.Text;
            webBrowser1.DocumentText = sText;
//SetupBrowser
private void SetupBrowser( string what)
        {
            //webBrowser1.DocumentText = "<html><body></body></html>";
            webBrowser1.DocumentText = "";
            doc = webBrowser1.Document.DomDocument as IHTMLDocument2;
            //doc.designMode = "On";
            doc.designMode = what;
            webBrowser1.Document.ContextMenuShowing +=
                new HtmlElementEventHandler(Document_ContextMenuShowing);
            if (what == "On")
                toolStrip1.Visible = true;
            else
                toolStrip1.Visible = false;
            webBrowser1.AllowWebBrowserDrop = false;
            webBrowser1.IsWebBrowserContextMenuEnabled = false;
            webBrowser1.WebBrowserShortcutsEnabled = false;
            
        }
```

Det är helt dött i Body_KeyDown

Permalänk: https://www.webforum.nu/p/2150888

## #6 — Phorpher, 2008-10-25T10:09Z

Tror vi går tillbaka nåt steg här nu.

Varför har du en timer som läser av tangenttryckningar? Du behöver ingen timer eftersom du har en eventhanterare som reagerar så fort du trycker på en tangent. Vad är det du vill göra förnågot?

Permalänk: https://www.webforum.nu/p/2150889

## #7 — saw, 2008-10-25T10:25Z

Jag har bara ett dumt svar på denna fråga.
Jag hittade denna koden när jag letade efter hur jag skulle kunna editera webbrowsern.
Det som är underligt är att till en början så fick jag upp messageboxen, men sen så
slutade den att fungera.

Permalänk: https://www.webforum.nu/p/2150890

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/174946-problem-med-keypressedcode
