Thank you Hidetoshi. I try your code, but got this error message: c:/tools/ruby/lib/ruby/1.8/tk.rb:1434:in `_invoke_without_enc': bad argument "^" : must be name of window (RuntimeError) from c:/tools/ruby/lib/ruby/1.8/tk.rb:1434:in `_ip_invoke_core' from c:/tools/ruby/lib/ruby/1.8/tk.rb:1470:in `_tk_call_core' from c:/tools/ruby/lib/ruby/1.8/tk.rb:1498:in `tk_call_without_enc' from c:/tools/ruby/lib/ruby/1.8/tk/grid.rb:45:in `configure' from C:/tsh/ruby/tk/grid.rb:8 shell returned 1 Some information: C:\tools\ruby>ruby -version ruby 1.8.2 (2004-07-29) [i386-mswin32] -e:1: undefined local variable or method `rsion' for main:Object (NameError) C:\tools\ruby>ruby -rtk -e 'p Tk::TCL_VERSION' "8.3" C:\tools\ruby>ruby -rtk -e 'p Tk::TK_VERSION' "8.3" ============================================ >No. TkGrid supports them. Please try the following. >------------------------------------------------ >require 'tk' > >a = TkButton.new(:text=>'a') >b = TkButton.new(:text=>'b') >c = TkButton.new(:text=>'c') > >TkGrid.configure( a , '-', :sticky=>'news') # or Tk.grid >TkGrid.configure('^', '^', b , :sticky=>'news') # or Tk.grid >TkGrid.configure( c , 'x', '^', :sticky=>'news') # or Tk.grid > >TkGrid.columnconfigure(Tk.root, [0,1,2], :weight=>1) # or Tk.grid_columnconfig >TkGrid.rowconfigure(Tk.root, [0,1,2], :weight=>1) # or Tk.grid_rowconfig > >Tk.root.geometry('250x250') > >Tk.mainloop >------------------------------------------------