Hello. I have a problem with set focus on a TextCtrl in wxRuby. I must do something like Login TextCtrl and set focus on a next TextCtrl by clicking Tab key. -- Posted via http://www.ruby-forum.com/.
I''m find something like this. somebody have a same problem If I create a window containing two TextCtrl widgets, enter text in one, and press the tab key, focus should move to the other one. That doesn''t happen automatically. Is there some configuration I have to do to make that happen? maybe it will more clear to explain -- Posted via http://www.ruby-forum.com/.
Here is a sample code for this problem
...
@login_field = Wx::TextCtrl.new(@loginokno, -1,
'''',Wx::Point.new(30,60),
Wx::Size.new(150,25))
@haslo_field = Wx::TextCtrl.new(@loginokno, -1,
'''',Wx::Point.new(30,110), Wx::Size.new(150,25))
@lastname_field = Wx::TextCtrl.new(@loginokno, -1,
'''',Wx::Point.new(30,160), Wx::Size.new(150,25))
@login_field.set_focus
@login_field.evt_key_down { |evt| on_log_key_down(evt) }
@haslo_field.evt_key_down { |evt| on_pas_key_down(evt) }
...
def on_log_key_down(evt)
keycode = evt.get_key_code()
if (keycode == 9)
@haslo_field.set_focus
else
evt.skip()
end
end
def on_pas_key_down(evt)
keycode = evt.get_key_code()
if (keycode == 9)
@lastname_field.set_focus
else
evt.skip()
end
end
--
Posted via http://www.ruby-forum.com/.
Hi Anton Komarov wrote:> If I create a window containing two TextCtrl widgets, enter text in > one, and press the tab key, focus should move to the other one. That > doesn''t happen automatically. Is there some configuration I have to do > to make that happen?Arrange the TextCtrl widgets within a Wx::Panel, and then tabbing should work automatically. Panel organises a group of widgets so that the operating system knows which to tab between. For example: -------- require ''wx'' Wx::App.run do frame = Wx::Frame.new(nil, :title => ''text tab'') panel = Wx::Panel.new(frame) txt1 = Wx::TextCtrl.new(panel, :pos => [ 10, 10 ]) txt2 = Wx::TextCtrl.new(panel, :pos => [ 10, 50 ]) frame.show end -------- Using Wx::Panel is also recommended because it ensures the frame has the right background colour, esp on Windows. alex