如何禁用内置搜索对话框
How to disable the built in Search dialog
是否可以完全禁用搜索功能?
我设法禁用的唯一搜索工具是在功能区上。但是由于我使用的是子表单,用户可以使用导航栏上的搜索框或者他可以按 Ctrl+F 开始搜索。
数据表有 60.000 行和 52 列。当我开始搜索时,它需要很长时间。
我可以禁用导航栏,但是如何防止用户使用 Ctrl+F 打开搜索对话框?
在相关表格中,将KeyPreview
属性设置为Yes
,这会导致所有按下的键在被Ms处理之前被发送到Form_KeyDown
事件访问。
如果你抓住 CTRL + F 组合键并自行处理(如下面的示例),它将无法打开搜索对话框。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF
If (Shift And CTRL_MASK) Then
MsgBox "No search allowed!", vbCritical
End If
End Select
End Sub
如果要禁用所有表单的搜索功能,请在名为 Autokeys 的宏中插入一个 SubMacro,并用 ^F 和 ^H 子宏捕获 CTRL+F(搜索)和 CTRL+H(搜索和替换)名字。 As Action 定义一个简单的蜂鸣声或什至什么都没有。如果您还想避免过滤,请不要忘记在表单属性中设置 Shortcut Menu = No
.
是否可以完全禁用搜索功能?
我设法禁用的唯一搜索工具是在功能区上。但是由于我使用的是子表单,用户可以使用导航栏上的搜索框或者他可以按 Ctrl+F 开始搜索。
数据表有 60.000 行和 52 列。当我开始搜索时,它需要很长时间。
我可以禁用导航栏,但是如何防止用户使用 Ctrl+F 打开搜索对话框?
在相关表格中,将KeyPreview
属性设置为Yes
,这会导致所有按下的键在被Ms处理之前被发送到Form_KeyDown
事件访问。
如果你抓住 CTRL + F 组合键并自行处理(如下面的示例),它将无法打开搜索对话框。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF
If (Shift And CTRL_MASK) Then
MsgBox "No search allowed!", vbCritical
End If
End Select
End Sub
如果要禁用所有表单的搜索功能,请在名为 Autokeys 的宏中插入一个 SubMacro,并用 ^F 和 ^H 子宏捕获 CTRL+F(搜索)和 CTRL+H(搜索和替换)名字。 As Action 定义一个简单的蜂鸣声或什至什么都没有。如果您还想避免过滤,请不要忘记在表单属性中设置 Shortcut Menu = No
.