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