用ctrl,shift选中多行?欢迎讨论

Hi_greece 2003-04-22 09:15:23
如何用crtl,shift键选中多行记录?
欢迎讨论,散分

...全文
109 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xirumin 2003-04-22
  • 打赏
  • 举报
回复
为什么还没结贴呢
yl_yz 2003-04-22
  • 打赏
  • 举报
回复
转粘一贴:
dw的cilcked事件
long lng_currentrow,lng_j,il_row,i_lng_lastrow
if row=0 then
return
else
il_row=row
lng_currentrow=row //当前鼠标点中行
end if
if keydown(keyshift!) then //按下SHIFT键
if i_lng_lastrow=0 then //上次没选中任何行
this.selectrow(lng_currentrow,true)
i_lng_lastrow=lng_currentrow //i_lng_lastrow为实例变量,记录上次单击的行
else
this.selectrow(0,false) //全都不选中
if lng_currentrow>i_lng_lastrow then
for lng_j=i_lng_lastrow to lng_currentrow
this.selectrow(lng_j,true)
end for
else
for lng_j=i_lng_lastrow to lng_currentrow step -1
this.selectrow(lng_j,true)
end for
end if
end if
else
i_lng_lastrow=lng_currentrow
if keydown(keycontrol!) then //按下CTRL键
if this.isselected(lng_currentrow) then
this.selectrow(lng_currentrow,false)
else
this.selectrow(lng_currentrow,true)
end if
else //无任何键按下
this.selectrow(0,false)
this.selectrow(lng_currentrow,true)
end if
end if
tchatcha 2003-04-22
  • 打赏
  • 举报
回复
下面代码是我程序里的还可以,
dw的cilcked事件
long i
IF row <= 0 THEN
Return 1
END IF
Long j
//先判断是否为取消选择
IF This.IsSelected(row) THEN
This.SelectRow(row,False)
ELSE
//control是否按下?
IF KeyDown(KeyControl!) THEN
//shift是否按下?
IF KeyDown(KeyShift!) THEN //shift ,control同时按下
FOR i = row TO 1 STEP -1
IF NOT This.IsSelected(i) THEN
Continue
ELSE
FOR j = i TO row
This.SelectRow(j,True)
NEXT
EXIT
END IF
NEXT
ELSE //只有control按下
IF This.IsSelected(row) THEN
This.SelectRow(row,False)
ELSE
This.SelectRow(row,True)
END IF
END IF
ELSE
//shift是否按下?
IF KeyDown(KeyShift!) THEN //只有shift按下
FOR i = row TO 1 STEP -1
IF NOT This.IsSelected(i) THEN
Continue
ELSE
FOR j = i TO row
This.SelectRow(j,True)
NEXT
EXIT
END IF
NEXT
ELSE //都没有按下
FOR i = 1 TO This.RowCount()
IF i = row THEN
IF NOT This.IsSelected(row) THEN
This.SelectRow(row,True)
END IF
Continue
END IF
This.SelectRow(i,False)
NEXT
END IF
END IF
END IF
tchatcha 2003-04-22
  • 打赏
  • 举报
回复
在数据窗中如何选中多行
//int lastselectedrow
//if row<1 then return
//long r
//if not keydown(keyShift!) or lastSelectedRow =0 then
//if not keyDown(keyControl!) then
//this.SelectRow(0,false);
//this.selectRow(row,true);
//lastSelectedRow = row;
//else
//if isSelected(row) then
//this.selectrow(row,false);
//lastSelectedRow = 0;
//else
//this.selectRow(row,true);
//lastSelectedRow = row;
//end if////end if
////else
//if lastSelectedRow>0 then
//this.selectrow(0,false);
//if row> lastSelectedRow then
//for r=lastSelectedRow to row
//this.selectrow(r,true);
//next
//elseif row< lastSelectedRow then
//for r=row to lastSelectedRow
//this.selectrow(r,true);
//next
//elseif row = lastselectedRow then
//this.selectrow(0,false);
//this.selectRow(row,true);
//end if
//end if
//end if

在rowfocuschanged事件上写
this.selectrow(currentrow,true)
或者是在clicked事件上也可以

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧