ACCESS 做一个特殊符号和常用符号输入面板

发布时间 2023-08-11 16:17:41作者: 一曲轻扬

对于行业符号,有些输入法有专门的特殊符号大全,比如

但是你得找啊,这么多类型,不熟悉的人都得晕菜,再说里面其实用到的,也就那么几个而已,不如我们把常用的挑出来吧.比如这样:

 大致思路是点一下按钮,然后规格型号这里就输出这个符号

这里我们需要定义一个控件级变量:控件级变量是在表单或报表的代码模块中声明的变量,起作用范围仅限于该表单或报表。控件级变量通常用于跟踪表单或报表中的控件属性或状态

也就是你在窗体的代码区顶部,用dim 声明的变量,其他窗体访问不到这个变量.比如

Option Compare Database
Dim iWHID As String
Dim ModalIndex As Integer

回到主题.这个需求最主要的是获取光标的位置,以确定在哪个地方输入字符.

所以要用到两个事件,一个是点击事件,一个是更改事件.

Private Sub epm_Change()
    ModalIndex = Len(epm.Text)
End Sub

Private Sub epm_Click()
     ModalIndex = epm.SelStart
End Sub

当用户点击文本框(epm)时,点击的位置就是光标的位置. 当用户往里输入数据时,光标位置要保持到最后一位.注意,我这里用到了"保持"这个词,先想想为什么.我后面会解答.

光标的位置是从0开始的,所以为了能在末尾加上特殊字符,Len(epm.Text)这里是不用减1的 .然后就是字符的插入函数了:

Private Sub insertStr(ByVal s As String)
    Me.epm.SetFocus    '激活文本框
    Me.epm.SelStart = ModalIndex    '恢复光标位置
    Me.epm.SelText = s    '插入字符
    Me.epm.SelStart = ModalIndex + 1    '光标位置+1,也就是出现在刚刚插入的字符的后面
End Sub

调用:

Private Sub Command229_Click() '在光标位置插入
   insertStr ("Φ")  
  '
insertStr Screen.ActiveControl.Caption

End Sub
Private Sub Command230_Click() 
  insertStr (
"°")
End Sub

 最后说一说为什么要用保持这个词.当你往文本框输入字符时,光标的位置是改变了,但你保存光标位置的那个变量没有跟着改变,这也是为什么要用change事件的原因.我最开始时,用的是控件的离开事件来取ModalIndex 值,结果经常出意外.仔细想了一下才知道是这个原因.