Keith Bolton wrote:
To whom it may concern,
Hello, I am capturing key events in a particular control. When the
enter key is pressed I call event.m_keyCode = wx.WXK_TAB. That's great,
but then I would like navigation to go to the next field. Here's my
code:
def onEnterHours(self, event):
if event.GetKeyCode() == 13: #Enter Key
event.m_keyCode = wx.WXK_TAB
self.Navigate(wx.NavigationKeyEvent.IsForward)
else:
event.Skip()
after the event.m_keyCode = wx.WXK_TAB, the
NavigationKeyEvent.IsForward, doesn't seem to move forward.
Maybe someone out there knows what I'm doing wrong?
I don't know what you are doing wrong, it may be somewhere else in your program. Changing the value of event.m_keyCode should have no effect since Navigate creates a new event to do the navigation.
This works for me:
import wx
class EnterIsTabTextCtrl(wx.TextCtrl):
def __init__(self, parent, ID=-1, value="",
pos=wx.DefaultPosition, size=wx.DefaultSize,
style=0, validator=wx.DefaultValidator, name="mytext"):
wx.TextCtrl.__init__(self, parent, ID, value, pos, size,
style, validator, name)
self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
def OnKeyDown(self, evt):
if evt.GetKeyCode() == wx.WXK_RETURN:
self.Navigate()
else:
evt.Skip()
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="TestFrame")
p = wx.Panel(self)
fgs = wx.FlexGridSizer(3, 3, 5, 5)
for x in range(12):
t = EnterIsTabTextCtrl(p, -1, str(x))
fgs.Add(t)
p.SetSizer(fgs)
app = wx.PySimpleApp()
frame = TestFrame()
frame.Show()
app.MainLoop()
···
--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!