VB开发——自定义控件源码

本文介绍了一种自定义文本框控件的方法,该控件能够确保用户输入的内容符合数值格式要求。通过检测输入的合法性并限制非法字符的输入,提高了用户输入数据的有效性和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源代码如下:

Option Explicit
'自定义文本框输入控件
'检测用户输入是否为数值

Private Sub Text1_Change()
    If IsNumeric(Text1.text) = False And Trim(Text1.text) <> "-" And Trim(Text1.text) <> "" Then
        MsgBox "输入中含有非法字符!", 16, ""
        Text1.SetFocus
        Text1.SelStart = 0
        Text1.SelLength = Len(Text1.text)
    End If
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
    Dim str As String
    str = Trim(Text1.text)

    Select Case KeyAscii
    Case 8, 9, 13, &H30 To &H39
        KeyAscii = KeyAscii

    Case 45             '负号[只充许字符的第一个字符是负号]
        If str = "" Then
            KeyAscii = KeyAscii
        Else
            KeyAscii = 0
        End If
   
    Case 46             '小数点处理[前面字符中没有小数点则可以输入]
        If (IsNumeric(str) = True And InStr(1, str, ".") = 0) Or str = "" Then
            KeyAscii = KeyAscii
        Else
            KeyAscii = 0
        End If
       
    Case Else
        KeyAscii = 0
    End Select
End Sub

Private Sub Text1_LostFocus()
    If IsNumeric(Text1.text) = False And Trim(Text1.text) <> "" Then
        MsgBox "输入中含有非法字符!", 16, ""
        Text1.SetFocus
        Text1.SelStart = 0
        Text1.SelLength = Len(Text1.text)
    End If
End Sub

'text属性
Public Property Get text() As String
    text = Text1.text
End Property

Public Property Let text(str1 As String)
    Text1.text = str1
    PropertyChanged "text"
End Property

'文本框高度
Public Property Get txtheight() As Integer
    txtheight = Text1.height
End Property

Public Property Let txtheight(iheight As Integer)
    Text1.height = iheight
End Property

'width
'文本框宽度
Public Property Get txtwidth() As Integer
    txtwidth = Text1.Width
End Property

Public Property Let txtwidth(iwidth As Integer)
    Text1.Width = iwidth
End Property

'字体
Public Property Get fontsize() As Integer
    fontsize = Text1.fontsize
End Property

Public Property Let fontsize(isize As Integer)
    Text1.fontsize = isize
End Property

P:

怎样写自定义控件的?~就是像你上面的源码~~怎样转成控件的?~~请指教~~
-----------------------------------
是这样的,新建一个用户控件,[注意不是建一个窗体,看好选项.]
然后在上面放一个文本框.然后将我的代码全面复制到代码栏中就可以了.
然后在工具箱中就会出现这个自定义控件了.

01 , 01.txt 《 VB6.0中通过MSChart控件调用数据库 》 02 , 02.txt 《 用VB6实现动态增减控件 》 03 , 03.txt ActiveX控件的创建 04 , 04.txt ADO控件和DATA控件的冲突(不能共存)的解决方法 05 , 05.txt Combo的自动查询技术 06 , 06.txt DirectX7.0使用心得(1) 07 , 07.txt DirectX7.0使用心得(2) 08 , 08.txt DirectX7.0使用心得(3) 09 , 09.txt FSO对象模型在VB中的应用 10 , 10.txt MsComm 控件的文字传输范例 11 , 11.txt Office或IE4风格的ToolBar 12 , 12.txt Regsvr32.exe注册控件的具体用法 13 , 13.txt TextBox的自动调节 14 , 14.txt TextBox实现打印机效果 15 , 15.txt TreeView的基本操作 16 , 16.txt VB5中DBGRID控件VB6中使用 17 , 17.txt VB6.0动态加载ActiveX控件漫谈 18 , 18.txt VB与MS-Draw开发通用作图软件 19 , 19.txt VB中APP对象及其应用 20 , 20.txt VB中list控件的功能扩充 21 , 21.txt VB中防止将重复项目添加到列表框控件中 22 , 22.txt VB中用Multimedia MCI控件开发多媒体应用 23 , 23.txt Win Api在VB中的妙用 24 , 24.txt WINDOWS SCRIPT HOST对象在VB中的使用 25 , 25.txt 安装向导生成程序组并建立多个程序项 26 , 26.txt 保存复选框选项 27 , 27.txt 不用OCX来创建自己的控件(一) 28 , 28.txt 成组更新控件属性 29 , 29.txt 创建数据驱动窗体 30 , 30.txt 得到鼠标位置 31 , 31.txt 调整 Combo 下拉部分的宽度 32 , 32.txt 动态加入控件VB控件数组中 33 , 33.txt 对ListView中的列排序 34 , 34.txt 放一个Combo到Toolbar中 35 , 35.txt 改变 ListIndex而不发生 Click 事
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值