dockfind.frm
来自「文档编程软件,类似WORD的一个编辑工具.」· FRM 代码 · 共 174 行
FRM
174 行
VERSION 5.00
Begin VB.Form frmDockFind
BorderStyle = 0 'None
Caption = "Find"
ClientHeight = 645
ClientLeft = 0
ClientTop = 0
ClientWidth = 3225
LinkTopic = "Form1"
ScaleHeight = 645
ScaleWidth = 3225
ShowInTaskbar = 0 'False
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton cmdFindNext
Caption = "查找"
Height = 255
Left = 2520
TabIndex = 4
Top = 0
Width = 615
End
Begin VB.TextBox txtFind
Height = 285
Left = 840
TabIndex = 1
Top = 0
Width = 1680
End
Begin VB.ComboBox cboSearch
Height = 315
ItemData = "DockFind.frx":0000
Left = 840
List = "DockFind.frx":000D
Style = 2 'Dropdown List
TabIndex = 0
Top = 315
Width = 2355
End
Begin VB.Label lbl3
Caption = "方向(&D):"
Height = 255
Left = 0
TabIndex = 3
Top = 345
Width = 780
End
Begin VB.Label lbl1
AutoSize = -1 'True
Caption = "查找(&N):"
Height = 180
Left = 0
TabIndex = 2
Top = 15
Width = 720
End
End
Attribute VB_Name = "frmDockFind"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'*************************************************
' 目的: 如果需要查找一个字符窗并且替换它
' 作用: 调用窗体的文字可能会改变。
' 输入: strFind: 要查找的文字
' strReplace: 查找到的文字后要的替换文字
' intStart: 开始的查找点
' intEnd: 查找范围
' 返回: True 文字已找到(并替换了)
' Flase 文字未找到
'*************************************************
Function FindString(strFind As String, strReplace As String, lngStart As Long, lngEnd As Long) As Boolean
Dim lngPos As Long '位置
With frmDDWordPadMDI.ActiveForm.rtf
'定位查找字符串
If lngStart = 0 Then lngStart = 1
lngPos = InStr(lngStart, .Text, strFind, vbTextCompare)
If lngPos = 0 Then
'未找到
FindString = False
Else
'它被找到了,但是超过了结尾区域,我们将做
If Not ((lngPos + Len(strFind)) > lngEnd) Then
'在范围之内
FindString = True
.SelStart = lngPos - 1
.SelLength = Len(strFind)
'如果“替换”值为空,仅仅只查找
If strReplace <> "" Then '替换它
.SelText = strReplace
End If
End If
End If
End With
End Function
'*************************************************
' 目的: 调用查找下一个。
'*************************************************
Private Sub cmdFindNext_Click()
Dim lngLen As Long '结束位置
Dim lngStart As Long '开始位置
'设置框内的文字的结尾长度
lngLen = Len(frmDDWordPadMDI.ActiveForm.rtf.Text)
Select Case cboSearch.ListIndex
Case 0 '搜索全部
lngStart = 1
Case 1 '向后搜索
lngStart = 1
'设置当前选择的结尾
lngLen = frmDDWordPadMDI.ActiveForm.rtf.SelStart
lngLen = lngLen + frmDDWordPadMDI.ActiveForm.rtf.SelLength
Case 2 '向前搜索
'设置当前选择的开头
lngStart = frmDDWordPadMDI.ActiveForm.rtf.SelStart
lngStart = lngStart + frmDDWordPadMDI.ActiveForm.rtf.SelLength
End Select
'调用函数来查找
If Not FindString(txtFind.Text, "", lngStart, lngLen) Then
MsgBox "未找到匹配字符串。", 0, "查找"
Else
' Unload Me
End If
End Sub
'*************************************************
' 目的: 初始化窗体
'*************************************************
Private Sub Form_Load()
'设置默认值为“全部”
cboSearch.ListIndex = 0
Form_Resize
End Sub
Private Sub Form_Resize()
On Error Resume Next
End Sub
'*************************************************
' 目的: 使按钮有效或无效
'*************************************************
Private Sub txtFind_Change()
If Len(txtFind.Text) > 0 Then
'查找文字存在,使“查找下一个”按钮有效
cmdFindNext.Enabled = True
Else
'查找文字不存在,使“查找下一个”按钮无效
cmdFindNext.Enabled = False
End If
End Sub
'*************************************************
' 目的: 选择框中的所有内容
'*************************************************
Private Sub txtFind_GotFocus()
Set frmDDWordPadMDI.currentCtl = txtFind
txtFind.SelStart = 0
txtFind.SelLength = Len(txtFind.Text)
End Sub
Private Sub txtFind_LostFocus()
Set frmDDWordPadMDI.currentCtl = Nothing
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?