如何禁用内置搜索对话框

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.