[转帖]实现数据窗口的多行选择
<p><font size="2">问:我想在PowerBuilder的数据窗口中实现多行选择,这该如何办呢?</font><br/> </p><p><font size="2">答:作一数据窗口通用对象(UserObject),在CLICKED事件中写入如下代码:</font><br/> </p><p align="left"><font size="2">long lng_currentrow,lng_j<br/><br/>if row=0 then<br/> return<br/>else<br/> lng_currentrow=row //当前鼠标点中行<br/>end if<br/>if keydown(keyshift!) then //按下SHIFT键<br/> if i_lng_lastrow=0 then //上次没选中任何行<br/> this.selectrow(lng_currentrow,true) <br/> i_lng_lastrow=lng_currentrow //i_lng_lastrow为实例变量,记录上次单击的行<br/> else<br/> this.selectrow(0,false) //全都不选中<br/> if lng_currentrow>i_lng_lastrow then<br/> for lng_j=i_lng_lastrow to lng_currentrow<br/> this.selectrow(lng_j,true)<br/> end for<br/> else<br/> for lng_j=i_lng_lastrow to lng_currentrow step -1<br/> this.selectrow(lng_j,true) <br/> end for<br/> end if <br/> end if<br/>else<br/> i_lng_lastrow=lng_currentrow<br/> if keydown(keycontrol!) then //按下CTRL键<br/> if this.isselected(lng_currentrow) then<br/> this.selectrow(lng_currentrow,false)<br/> else<br/> this.selectrow(lng_currentrow,true)<br/> end if <br/> else //无任何键按下<br/> this.selectrow(0,false)<br/> this.selectrow(lng_currentrow,true)<br/> end if<br/>end if</font></p><p align="left"><font size="2">在窗口的OPEN事件中写入如下代码:</font></p><p align="left"><font size="2">dw_1.object.datawindow.readonly=true</font></p>[此贴子已经被作者于2007-6-30 13:52:47编辑过]
页:
[1]