🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #22207

Re: Jak dodać zdarzenie KeyDown do Panel

#22207
From: Maciej Rychter
Date: Fri, 17 Jun 2011 07:07
63 lines
4580 bytes
On 11 Cze, 10:26, akowal <akrunne...@gmail.com> wrote:
> To jest cały program
>
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Linq;
> using System.Text;
> using System.Windows.Forms;
>
> namespace Jeden
> {
>                 public partial class Form1 : Form
>                 {
>                                 public Form1()
>                                 {
>                                                 InitializeComponent();
>                                 }
>
>                                 private void Form1_Load(object sender, EventArgs e)
>                                 {
>                                                 this.ActiveControl = this.panel1;
>                                                 this.panel1.KeyDown += new KeyEventHandler(panel1_KeyDown);
>                                 }
>
>                                 void panel1_KeyDown(object sender, KeyEventArgs e)
>                                 {
>                                                 String s = e.KeyCode.ToString();
>                                                 e.Handled = true;
>                                                 MessageBox.Show(s);
>                                 }
>                 }
>
> }
>
> Na Form1 jest Panel i to wszystko. Chciałbym na panellu rysowac
> figurę, a badać klawisz Delete po to aby
> można narysowaną fiigurę usunąć. Stąd takie proste ćwiczenie, ale nie
> rrozumieem dlaczego MessageBoox.Show
> wywwołuje mmi się dwa razy. e.Handled = true nie pomaga.
>
> Pozdrawiam

Witam,

ja bym tam się nad tym zagadnieniem nie zastanawiał zbyt długo tylko
zaszedł zagadnienie od drugiej strony:

przechwytywanie komunikatów systemowych (w tym przechwytywanie
naciśnięć klawiszy) możesz zrobić za pomocą implementacji interfejsu
IMessageFilter.
Sprawdzałem to kiedyś w aplikacji i działa to całkiem zgrabnie -
jedyne czego musisz się dowiedzieć to numerek wiadomości związane z
naciśnięciem klawisza, ale to nie jest problem (Google twoim
przyjacielem jest).

Zajrzyj pod adresik: http://geekswithblogs.net/Jaggi/archive/2006/02/02/67999.aspx

Tam masz prosty przykładzik. Oczywiście taki filterek działa dla całej
aplikacji nie tylko dla wybranej formy, ale podane wymagania powinien
spełniać idealnie.
Technical Details
Message-ID: <34852184-af60-474b-a6f8-2ad409749da9@s41g2000prb.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsfeed.straub-nv.de!feeder.news-service.com!feeder2.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!209.197.12.246.MISMATCH!nx02.iad01.newshosting.com!newshosting.com!novia!news-out.readnews.com!news-xxxfer.readnews.com!postnews.google.com!s41g2000prb.googlegroups.com!not-for-mail
References: <01ebc3ac-0c03-4fab-b148-767902beaa84@j31g2000yqe.googlegroups.com> <28523cf1-ce13-4f33-a533-388e545ca2b3@d1g2000yqe.googlegroups.com> <a85d1a36-1708-4835-a39e-6f0f5aab3c37@z13g2000yqg.googlegroups.com> <09ccfcea-a2b4-4a49-b874-fcfb9f53a424@m4g2000yqk.googlegroups.com> <bdc9793e-ee0f-41ea-b007-e9c430b34088@16g2000yqy.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsfeed.straub-nv.de!feeder.news-service.com!feeder2.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!209.197.12.246.MISMATCH!nx02.iad01.newshosting.com!newshosting.com!novia!news-out.readnews.com!news-xxxfer.readnews.com!postnews.google.com!s41g2000prb.googlegroups.com!not-for-mail
From: Maciej Rychter <rychter.maciej@gmail.com>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: Jak dodać zdarzenie KeyDown do Panel
Date: Fri, 17 Jun 2011 00:07:38 -0700 (PDT)
Organization: http://groups.google.com
Lines: 77
Message-ID: <34852184-af60-474b-a6f8-2ad409749da9@s41g2000prb.googlegroups.com>
References: <01ebc3ac-0c03-4fab-b148-767902beaa84@j31g2000yqe.googlegroups.com> <28523cf1-ce13-4f33-a533-388e545ca2b3@d1g2000yqe.googlegroups.com> <a85d1a36-1708-4835-a39e-6f0f5aab3c37@z13g2000yqg.googlegroups.com> <09ccfcea-a2b4-4a49-b874-fcfb9f53a424@m4g2000yqk.googlegroups.com> <bdc9793e-ee0f-41ea-b007-e9c430b34088@16g2000yqy.googlegroups.com>
NNTP-Posting-Host: 80.94.182.138
Mime-Version: 1.0
X-Trace: posting.google.com 1308294571 19585 127.0.0.1 (17 Jun 2011 07:09:31 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Fri, 17 Jun 2011 07:09:31 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: s41g2000prb.googlegroups.com; posting-host=80.94.182.138; posting-account=0LtQXAoAAABsec8yh6dn4H8zU73p878u
User-Agent: G2/1.0
X-HTTP-Via: 1.1 webwasher (Webwasher 6.8.7.9979)
X-Google-Web-Client: true
X-Google-Header-Order: ASELNKCHRUV
X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit