以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  单元格中如何识别键盘按键  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88090)

--  作者:天若千颖
--  发布时间:2016/7/26 22:29:00
--  单元格中如何识别键盘按键
 红袍老师,在单元格中,首先判断是特定的这一列:

If e.Col.Name = "文件名称及链接" Then

如果双击就直接打开文件,打开文件的代码已经有了,直接放在表属性的DoubleClick里面,

但是,如果按住键盘的Ctrl键双击的话,就另存为文件,如何在单元格中判断键盘上按下的是Ctrl键呢?

e.Control = True

在双击的事件里不能用啊。

--  作者:天若千颖
--  发布时间:2016/7/26 22:32:00
--  
    这是白天用的在 KeyDown中这么设置,按键盘任意键就另存,但是发现用的时候很不方便,所以,不能放在KeyDown里面,或者KeyDown里面要识别键盘是按得Ctrl键才执行下面的代码,不然的话,好像鼠标右键也会执行。

If e.Table.Current Is Nothing Then Return
Dim c As Col = e.Table.Cols(e.Table.ColSel)
If c.name = "文件名称及链接" Then
    Dim dlg As new SaveFileDialog
   
dlg.FileName = FileSys.GetName(e.Table.Current(c.Name))
    If dlg.ShowDialog = DialogResult.OK Then
        e.cancel = True
        Dim ftp As FTPClient = c.DataCol.FTPClient
        Dim path As String = ProjectPath & "RemoteFiles\\" & FileSys.GetName(e.Table.Current(c.Name))
        ftp.Download(e.Table.Current(c.Name), path, True)
       
        FileSys.CopyFile(path, dlg.FileName, True)
        msgbox("另存成功")
    End If
End If

[此贴子已经被作者于2016/7/26 22:34:33编辑过]

--  作者:天若千颖
--  发布时间:2016/7/26 22:38:00
--  
 Dim c As Col = e.Table.Cols(e.Table.ColSel)
If c.name = "文件名称及链接" Then
If e.Control = True AndAlso e.Table.Current IsNot Nothing Then
MessageBox.show("12")   
End If
End If

这样搞定了。