DLL初探:一个简单的只允许输入数字的文本框(VB.net)

本文档详细介绍了如何在VS2017环境下,利用Windows窗体控件库创建一个只允许输入有理数(正负数、小数)的自定义TextBox控件。通过编写KeyPress事件处理代码,限制输入字符,确保输入的有效性。完成后的控件可用于其他项目,方便复用。

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

我是一个业余爱好者加菜鸟,专业理论基础等于零,对编程的感受,大约相当于一个精美的玩具,而这个玩具带给我的可能是一分能以此为乐的寄托,加上因为花费大量时间得来的少许操控感觉吧。今天带来的是制作一个只允许输入有理数(正负数,小数)的文本框TextBox。 这个例子在网上讲过很多次,但因为版本不一样,新手按照原来的资料操作,会遇到很多意想不到的问题,折腾许久也得不到想要的结果,于是就试着操作了一番,顺利通过,现将流程写上来,自己做个日志,也可以让有疑问者参考参考。

环境: VS2017,win10专业版 64位操作系统

1,打开VS2017,新建项目,选择“Windows窗体控件库(.Net FrameWork)”,项目名为 NumText. 项目名可自行定义

2,更改UserControl1.vb文件名为 NumTextBox.vb, 其它按系统默认。

3,打开设计器(双击 NumTextBox.vb),拖入一个TextBox到容器中,控件Name默认为TextBox,放到容器的左上方,然后调整控件和容器的大小和位置,使容器刚好能和TextBox重合,当然这是为了外观美观,如果随便一拖,放到容器里也无所谓。

4,开始写代码.打开代码窗口,给TextBox1的KeyPress事件编码方法TextBox1_KeyPress

Public Class NumTextBox
    Private Sub TextBox1_KeyPress(ByVal sender As System.Object,
                                  ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Dim tbox = CType(sender, TextBox)
        Dim KeyAscii As Integer = Asc(e.KeyChar) '获取用户按下的键

        Select Case KeyAscii
            Case 48 To 57, 8, 13 '数字0-9,退格,回车
            Case 45
                If InStr(tbox.Text, "-") <> 0 Then '"-"负号不在第一个位置
                    KeyAscii = 0
                End If
                If tbox.SelectionStart <> 0 Then '光标位置
                    KeyAscii = 0
                End If
            Case 46
                If InStr(tbox.Text, ".") Then '小数点位置不对
                    KeyAscii = 0
                End If
            Case Else
                KeyAscii = 0
        End Select
        If KeyAscii = 0 Then
            e.Handled = True
        Else
            e.Handled = False
        End If
    End Sub

End Class

5,启动调试,即可在obj文件夹下看到NumTextBox.dll

6,在其它项目中引用此dll使用

不当之处,敬请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值