限制 DataGrid 选择行数

dofly 2004-09-26 01:30:55
设定 DataGrid 选择时最多选择行数为5行,
现在的问题是,在进行第六次点击的时候,要进行判断
一。如果第六次点击不在这五行之内,则不作处理
二。如果第六次点击在这五行之内,则把本行作不选择状态

请大家出出主意。谢谢。
...全文
180 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
strXiaoCaiNiao 2004-09-28
  • 打赏
  • 举报
回复
不好意思,
DtgRrSale.UnSelect(DtgRrSale.CurrentRowIndex)
改为:
dtgSale.UnSelect(dtgRrSale.CurrentRowIndex)

^_^
strXiaoCaiNiao 2004-09-28
  • 打赏
  • 举报
回复
你先定义一个变量intSelectedRowNum用于存已选中的行数,在Click事件中加入:
Try
intSelectedRowNum = 0

Dim i As Integer
For i = 0 To dasSale.Tables("Sale").Rows.Count-1
If dtgSale.IsSelected(i) Then
intSelectedRowNum += 1
End If
Next

If intSelectedRowNum > 5 Then
DtgRrSale.UnSelect(DtgRrSale.CurrentRowIndex)
MsgBox("You cannot select more than 5 rows!")
End If
Catch ex As Exception
.....
End Try

不知对你有没有帮助,呵呵,只能帮你UP

dofly 2004-09-28
  • 打赏
  • 举报
回复
今天晚餐前结贴
QPTYDL 2004-09-27
  • 打赏
  • 举报
回复
你把所有的行都遍历一便,判断IsSelect 属性,就知道这一行是否被选中了,其他的东西你自己会做吧,如果选中的行数超过5行,那么…………,如果没有,那么…………,呵呵呵
dofly 2004-09-27
  • 打赏
  • 举报
回复
想法倒是可行的。
只是第六次点击的时候,怎么把这一行 UnSelect 掉,
因为这一行点击的时候按住了 Ctrl ,再点的行首
xiaoxin1981115 2004-09-27
  • 打赏
  • 举报
回复
你在选择事件里用定义一个数组把每次选的索引放进去
判断它的count<5,循环他判断是否等于第6次的索引等于就去掉.
提供个想法不知对否.
dofly 2004-09-27
  • 打赏
  • 举报
回复
老大,你怎么把我说的复述了一遍。
dofly 2004-09-27
  • 打赏
  • 举报
回复
当然要遍历,不然怎么知道被选择了几行
dofly 2004-09-27
  • 打赏
  • 举报
回复
关键问题是:
点击的时候按住了 Ctrl ,.net 设置为选择行,
现在要改为取消行

thinkingforever 2004-09-26
  • 打赏
  • 举报
回复
在他的选择改变是判断一下,现在选中几个了,如果不大于5个让它选中,如果超过则不让他选中

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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