TIPS > vrubyでダイアログ上のリストビューからダブルクリックイベントを拾う

visualurubyでダイアログ上に配置したVRListViewのダブルクリックイベントを拾う方法をメモします。



下のサンプルコードを実行すると、上のようなダイアログが表示されます。
リストビュー上をダブルクリックするか、ボタンを押すとメッセージボックスが表示されます。

- サンプルコード
require 'vr/vrdialog'
require 'vr/vrcontrol'
require 'vr/vrcomctl'
 
class FileSelectDialog < VRModalDialog
  include VRContainersSet
 
  def construct
    self.caption = 'ファイル選択'
    self.move(348,128,500,400)
    addControl(VRListview,'listview',"listview",16,16,456,296,1342177281)
    addControl(VRButton,'ok',"OK",288,328,80,24,1342177280)
  end
 
  def listview_dblclicked
    messageBox("dblclicked")
  end
 
  def ok_clicked
    messageBox("ok")
  end
end
 
VRLocalScreen.modalform(nil,nil,FileSelectDialog,nil,nil)
 

コード上のポイントは、VRContainersSetをincludeしていることです。
これがないとリストビュー上をダブルクリックしてもメッセージボックスは表示されません(ボタンは表示されます)。
フォームではincludeしなくてもメッセージボックスが表示されますが、ダイアログではincludeする必要があるようです。
なお、VRContainerSetは、「とりあえず全部」イベント受信するモジュールらしいので、ダブルクリックイベントを拾うだけならもっと的確なモジュールがあるかもしれません。
最終更新:2009年09月30日 07:52
添付ファイル