🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: [Windows.Forms] tabindex + używanie entera jak klawisza tab

#619
From: Marek Janaszewski USUNTO. z adre...
Date: Sat, 27 Mar 2004 21:25
61 lines
2675 bytes
Marcin Załęczny wrote:
> Dnia Thu, 25 Mar 2004 12:19:31 +0100, Piecu
> <piecu.NIE_...@go2.pl> napisał:
>
>> Użytkownik Tomasz Kubacki napisał:
>>> ...a pod if robie:
>>> SendKeys.Send("    ");
>>> czyli wysyłam tab'a :-)
>>
>> A nie prościej:
>> passTextBox.Focus();
>> ???
>>
>
> Prosciej, ale dziala tylko w tym konkretnym przypadku ;) Pierwsze
> rozwiazanie jest uniwersalne.

Witam!

A ja na początek zaproponuje coś takiego:

  private void WinForm_KeyPress(object sender,
System.Windows.Forms.KeyPressEventArgs e)
  {
   if (e.KeyChar == '\r')
   {
    SelectNextControl(ActiveControl, true, true, true, true);
    e.Handled = true;
   }
  }

Trzeba ustawić KeyPreview dla formularza aby zdarzenie było wywoływane.
Testowałem to różnych kontrolkach i ComboBox jakby przechwytywało te
klawisze. Dodatkowo przydało by się obsłużyć Shift+Enter dla cofania focusu.

W dokumentacji jest Focus i Select, ciekawa jaka to jest różnica dla
kontrolek.

Więc ewentualnie:

  private void WinForm_KeyPress(object sender,
System.Windows.Forms.KeyPressEventArgs e)
  {
   if (e.KeyChar == '\r')
   {
    Control c = GetNextControl(ActiveControl, true);
    if ((c != null) && (c.CanFocus))
     c.Focus();
    e.Handled = true;
   }
  }

Wydaje się najlepszym rozwiązaniem wsadzić ten kod w AcceptButton. Wtedy
będzie wywoływane tylko kiedy Enter jest dostępny i nie wykorzystywane przez
innego kontrolki. W KeyPress widze problem z ComboBox bo nie jest
wywoływany, mimo że lista jest schowana.

-- 
Pozdrawiam,
Marek Janaszewski
[ j_m...@gazeta.pl ]
Technical Details
Message-ID: <c455cq$2kh2$6@news.atman.pl>
Path: mbox-mo1.pugleaf.net!archiver1.google.com!news1.google.com!news.glorb.com!nntp.idg.pl!news.atman.pl!not-for-mail
References: <c3ooon$mjj$1@atlantis.news.tpi.pl> <c3ps1i$efm$1@nemesis.news.tpi.pl> <c3ufc2$761$1@nemesis.news.tpi.pl> <opr5gi56eysqthqm@news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!archiver1.google.com!news1.google.com!news.glorb.com!nntp.idg.pl!news.atman.pl!not-for-mail
From: "Marek Janaszewski \(USUN_TO. z adresu!\)" <USUN_TO...@gazeta.pl>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: [Windows.Forms] tabindex + używanie entera jak
 klawisza tab
Date: Sat, 27 Mar 2004 22:25:26 +0100
Organization: ATMAN
Lines: 62
Message-ID: <c455cq$2kh2$6@news.atman.pl>
References: <c3ooon$mjj$1@atlantis.news.tpi.pl> <c3ps1i$efm$1@nemesis.news.tpi.pl> <c3ufc2$761$1@nemesis.news.tpi.pl> <opr5gi56eysqthqm@news.tpi.pl>
NNTP-Posting-Host: staticline702.toya.net.pl
Mime-Version: 1.0
X-Trace: news.atman.pl 1080432859 86562 217.113.228.127 (28 Mar 2004 00:14:19 GMT)
X-Complaints-To: use...@atman.pl
NNTP-Posting-Date: Sun, 28 Mar 2004 00:14:19 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit