Article View: alt.pl.comp.lang.csharp
Article #619Re: [Windows.Forms] tabindex + używanie entera jak klawisza tab
From: Marek Janaszewski USUNTO. z adre...
Date: Sat, 27 Mar 2004 21:25
Date: Sat, 27 Mar 2004 21:25
61 lines
2675 bytes
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-mailReferences:
<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