|
4#
楼主 |
发表于 2017-8-14 23:07:09
|
只看该作者
本帖最后由 wx0000888 于 2017-8-14 23:10 编辑
找到一个比较有效的办法
一般我们不会把数据表窗体单独作为一个窗体,而是作为子窗体的存在, 这样就好办了.
就是:
乾坤大挪移法---转移焦点法
当用户不小心单击到数据表子窗体的字段上,那么整列字段就会被选取,如果按DELETE键,在2003以下版本是无所谓的, 但在2007版本以上整个字段就会被删除,那是很危险的事情, 如果用 Autokeys , {DEL} 宏进行屏蔽, 那我们就无法用 delete 键 修改文本控件了, 这样就不方便了,下面的代码就解决了这个问题.
就是当鼠标点击选取到整列字段的时候, 我们把焦点转移到主窗体上. 按delete键 只会对主窗体上的控件有影响, 如果焦点开始位置设置好了,就丝毫没有影响了.
在子窗体中的代码是如下:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ' 不能用Form_MouseUp事件 ,只能是这个
If IsLoaded("主窗体") Then ' 这里的主窗体 是指你们自己的主窗体
Me.Parent.cboCustomer.SetFocus ' Me.Parent 就是 主窗体
Me.Parent.cboCustomer.SelStart = Len(Nz(Me.Parent.cboCustomer.Text, "")) ' cboCustomer 为主窗体上第一个可用的组合控件
End If
End Sub
|
|