📄 tabs.frm
字号:
VERSION 5.00
Begin VB.Form frmTabs
BorderStyle = 3 'Fixed Dialog
Caption = "制表位"
ClientHeight = 2535
ClientLeft = 45
ClientTop = 330
ClientWidth = 2955
ControlBox = 0 'False
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 2535
ScaleWidth = 2955
ShowInTaskbar = 0 'False
StartUpPosition = 1 '所有者中心
Begin VB.TextBox txtTabStop
Height = 285
Left = 0
TabIndex = 6
Top = 300
Width = 1635
End
Begin VB.ListBox lstTabs
Height = 1680
Left = 180
Sorted = -1 'True
TabIndex = 5
Top = 660
Width = 1455
End
Begin VB.CommandButton cmdOK
Caption = "确定"
Default = -1 'True
Height = 390
Left = 1785
TabIndex = 4
Top = 75
Width = 1110
End
Begin VB.CommandButton cmdCxl
Cancel = -1 'True
Caption = "取消"
Height = 390
Left = 1785
TabIndex = 3
Top = 525
Width = 1110
End
Begin VB.CommandButton cmdSet
Caption = "设置(&S)"
Enabled = 0 'False
Height = 390
Left = 1785
TabIndex = 2
Top = 1200
Width = 1110
End
Begin VB.CommandButton cmdClear
Caption = "删除(&C)"
Enabled = 0 'False
Height = 390
Left = 1785
TabIndex = 1
Top = 1650
Width = 1110
End
Begin VB.CommandButton cmdClearAll
Caption = "全部删除(&A)"
Height = 390
Left = 1785
TabIndex = 0
Top = 2100
Width = 1110
End
Begin VB.Label lblLabel1
AutoSize = -1 'True
Caption = "制表位位置(&P):"
Height = 180
Left = 0
TabIndex = 7
Top = 60
Width = 1260
End
End
Attribute VB_Name = "frmTabs"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'部分代码版权(C) 1995, Microsoft Corporation
'-----HHZealot 翻译(superhrz@elong.com)-----
Option Explicit
Option Base 1 '设置数组下标的缺省下界
Dim mblnLoading As Boolean '加载的标志
'*************************************************
' 目的: 在列表框中添加一个制表位
'*************************************************
Private Sub btnAdd_Click()
Dim intI As Integer '计数器
Dim blnMatch As Boolean '匹配标志
blnMatch = False '设置“匹配标识”为 False
'检查新的制表位已经存在在列表中了
For intI = 0 To lstTabs.ListCount - 1
If txtTabStop.Text = lstTabs.List(intI) Then
'若文本已经在列表中了,匹配标志为 True
blnMatch = True
End If
Next intI
If Not blnMatch Then '如果不匹配
'把它添加到列表中
lstTabs.AddItem txtTabStop.Text
End If
End Sub
'*************************************************
' 目的: 过滤所按下的键(仅限于数字)
'*************************************************
Private Sub cboTab_KeyPress(KeyAscii As Integer)
If Not ((KeyAscii >= Asc("0") And KeyAscii <= Asc("9")) Or KeyAscii = Asc(".")) Then
KeyAscii = 0 '取消按键
Beep
End If
End Sub
'*************************************************
' 目的: 设置制表位到活动的 RTF 控件中
'*************************************************
Sub SetTabs()
'更新在活动窗体中的列表
With frmDDWordPadMDI.ActiveForm
Dim intI As Integer
.ScaleMode = 1 '缇
.rtf.SelTabCount = lstTabs.ListCount
ReDim intOldTabs(0 To .rtf.SelTabCount)
For intI = 0 To lstTabs.ListCount - 1
'添加新的项目到列表中
.rtf.SelTabs(intI) = lstTabs.List(intI) * 1440#
intOldTabs(intI) = .rtf.SelTabs(intI)
Next intI
End With
End Sub
'*************************************************
' 目的: 从制表位列表框中删除当前的项
'*************************************************
Private Sub cmdClear_Click()
'删除它
lstTabs.RemoveItem lstTabs.ListIndex
'使“删除”按钮无效
cmdClear.Enabled = False
'使“设置”按钮有效
cmdSet.Enabled = True
'设置焦点在“设置”按钮上
cmdSet.SetFocus
End Sub
'*************************************************
' 目的: 从列表框中删除所有的制表位
'*************************************************
Private Sub cmdClearAll_Click()
lstTabs.Clear '清除它们
txtTabStop.Text = "" '清除制表位文字
txtTabStop.SetFocus '设置焦点在新的的制表位文本框上
End Sub
'*************************************************
' 目的: 卸载窗体
'*************************************************
Private Sub cmdCxl_Click()
Unload Me
End Sub
'***************************************************
' 目的: 在调用此对话框的文档中设置新的的制表位值
'***************************************************
Private Sub cmdOK_Click()
SetTabs '调用子程序为了在此对话框的文档设置制表位
Unload Me '关闭窗体
End Sub
'*************************************************
' 目的: 在列表框中添加新的的制表位
'*************************************************
Private Sub cmdSet_Click()
'添加制表位
lstTabs.AddItem txtTabStop.Text
'“清除”按钮有效
cmdClear.Enabled = True
'“设置”按钮无效
cmdSet.Enabled = False
End Sub
'*************************************************
' 目的: 设置加载的标志
'*************************************************
Private Sub Form_Load()
mblnLoading = True
End Sub
'***************************************************
' 目的: 从调用窗体到此窗体来加载制表位的值
'***************************************************
Private Sub Form_Paint()
If mblnLoading = True Then '窗体已经被加载了
Dim intI As Integer '计数器
For intI = 0 To frmDDWordPadMDI.ActiveForm.rtf.SelTabCount - 1
'添加 RTF项到列表框
'MsgBox .rtfRichTextBox1.SelTabs(intI)
Dim sglTabValue As Single
sglTabValue = frmDDWordPadMDI.ActiveForm.rtf.SelTabs(intI) / 1440#
sglTabValue = CInt(sglTabValue * 100) / 100#
lstTabs.AddItem Str(sglTabValue)
Next intI
mblnLoading = False '完毕
End If
End Sub
'*************************************************
' 目的: 更新文本框来显示制表位的值
'*************************************************
Private Sub lstTabs_Click()
'设置制表位文本框的值为列表框的所选项的值
txtTabStop.Text = Trim(lstTabs.List(lstTabs.ListIndex))
End Sub
'*************************************************
' 目的: 设置按钮的 Enabled 属性的值由文本框的内
' 容而定
'*************************************************
Private Sub txtTabStop_Change()
If Len(txtTabStop.Text) > 0 Then
'在文本框中是否有文字
'使“设置”按钮有效
cmdSet.Enabled = True
Dim intI As Integer '计数器
For intI = 0 To lstTabs.ListCount - 1
If Val(txtTabStop.Text) = Val(lstTabs.List(intI)) Then
'文字在列表框中已经存在,使“删除”按钮有效、“设置”按钮无效
cmdClear.Enabled = True
cmdSet.Enabled = False
'设置列表框的索引来匹配用户输入的值
lstTabs.ListIndex = intI
'移动选定光标来结束输入的字符串
txtTabStop.SelStart = Len(txtTabStop.Text)
txtTabStop.SelLength = 0
End If
Next intI
Else
'无文字
'设置“设置”“清除”按钮都无效
cmdSet.Enabled = False
cmdClear.Enabled = False
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -