栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

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

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

我是一个业余爱好者加菜鸟,专业理论基础等于零,对编程的感受,大约相当于一个精美的玩具,而这个玩具带给我的可能是一分能以此为乐的寄托,加上因为花费大量时间得来的少许操控感觉吧。今天带来的是制作一个只允许输入有理数(正负数,小数)的文本框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使用

不当之处,敬请指正。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号