按住Ctrl键选择记录可多选,但好象不能同时删除

解决方案 »

  1.   

    按ctrl也不能选择多个呀!你是怎样做的?
      

  2.   

    你加多一个checkbox控件,使checkbox和datagrid的记录一一对应,然后辨断checkbox来删除。比较烦一点
      

  3.   

    转个解决方案
    回复人: acptvb(微软全球技术中心 VB技术支持) (  ) 信誉:95  2002-07-12 13:46:00  得分:0  
     
     
      
    感谢您使用微软产品。DataGrid对象的SelBooks属性保存了选中的多行记录的books,您可以用SelBooks集合的Add方法把多行记录设为选定。如果您希望通过按下shift+鼠标左键,一次选取datagrid中的多条记录,您需要计算要选入的记录相对于当前活跃记录的位置,作为DataGrid对象的GetBook方法的参数,获得该行的BookMark,再使用DataGrid1.SelBooks的Add方法,API函数GetKeyState用于判断shift键的状态,做出相应的操作。如下例,Private Const VK_SHIFT = &H10
    Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As IntegerPrivate last_selPrivate Sub Form_Load()
    last_sel = 0
    End SubPrivate Sub DataGrid1_SelChange(Cancel As Integer)   If GetKeyState(VK_SHIFT) < 0 Then
            relative = last_sel - DataGrid1.Row
            Text1.Text = relative
            If relative < 0 Then
              For j% = relative To -1
                 DataGrid1.SelBooks.Add (DataGrid1.GetBook(j%))
              Next j%
            Else
              For j% = 1 To relative
                 DataGrid1.SelBooks.Add (DataGrid1.GetBook(j%))
              Next j%
            End If
        Else
            
            last_sel = DataGrid1.Row
            Text1.Text = last_sel
        End IfEnd Sub选中多条记录后,SelBooks记录了被选中记录的位置,您可以利用它来操作记录,如下例删除所选的多条记录。
      Sub DeleteRows()
        Dim varBmk As Variant
        For Each varBmk In DataGrid1.SelBooks
            Data1.Recordset.Book = varBmk
            Data1.Recordset.Delete
            Data1.Refresh
        Next
    End Sub详细信息请参考:
    Add Method (Columns, SelBooks, Splits Collections)
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/DBGrid98/html/damthinsert.aspSelBooks Collection
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/DBGrid98/html/daobjselbooks.aspSelBooks Property Example
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/DBGrid98/html/daproselbooksx.aspGetKeyState 
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/keybinpt_4z51.asp
    - 微软全球技术中心 VB技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。