• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > VB.NET中TextBox的智能感知应用实例

VB.NET中TextBox的智能感知应用实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了vb.net textbox属性,vb.net textbox,vb.net中synclock,vb.net中,vb.net中chart等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例形式介绍了VB.NET中TextBox的智能感知实现方法,功能非常实用,具体如下:

该实例主要实现:在TextBox中键入字符,可以智能感知出列表,同时对不存在的单词(没有出现智能感知的)自动显示“Not Found”。

对此功能首先想到的是利用TextBox的AutoComplete功能。该功能允许你设置不同形式的AutoComplete智能感知,譬如:

1)AutoCompleteSource:设置感知源头类型(这里是CustomSource)。

2)AutoCompleteMode:设置感知的模式(输入不存在的字符追加,不追加还是同时存在,这里显然不追加)。

3)AutoCompleteCustomSource:设置源头数据(AutoCompleteSource必须是CustomSource)。

接下来思考如何在输入第一个字符的时候判断是否被感知到,如果没有则显示文本。

拖拽一个Label到窗体上,然后在TextBox的KeyUp事件中对数据源进行判断(为了方便,直接先把数据源数据转化成Array的形式然后使用扩展方法Any进行判断),同时为了防止界面卡死,使用异步。

具体实现代码如下:

Public Class Form1
  Dim collection As New AutoCompleteStringCollection
  Private ReadOnly arrayCollection() As String = {"a"}

  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

  End Sub

  Public Sub New()

    InitializeComponent()
    collection.AddRange(New String() {"apple", "aero", "banana"})
    TextBox1.AutoCompleteCustomSource = collection
    ReDim arrayCollection(collection.Count - 1)
    collection.CopyTo(arrayCollection, 0)
  End Sub
  ''' <summary>
  ''' When release the keys, plz start a background thread to handle the problem
  ''' </summary>
  Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
    Dim act As New Action(Sub()
                 'Check whether there are any values inside the collection or not
                 If (TextBox1.Text = "") OrElse (arrayCollection.Any(Function(s)
                                             Return s.StartsWith(TextBox1.Text)
                                           End Function)) Then

                   Label1.BeginInvoke(New MethodInvoker(Sub()
                                        Label1.Text = String.Empty
                                      End Sub))
                 Else
                   Label1.BeginInvoke(New MethodInvoker(Sub()
                                        Label1.Text = "Not found"
                                      End Sub))
                 End If

               End Sub)
    act.BeginInvoke(Nothing, Nothing)
  End Sub
End Class
</div>

这里有一些注意点:

1)异步的异常不会抛出(因为异步的本质是CLR内部的线程),只能调试时候看到。因此编写异步程序必须万分小心。

2)VB.NET定义数组(譬如定义String(5)的数组,其实长度是6(从0~5)包含“5”自身,因此数组复制(Redim重定义大小)的时候必须Count-1,否则重新定义的数组会多出一个来,默认是Nothing,这会导致异步线程出现异常)。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • VB.NET中TextBox的智能感知应用实例

相关文章

  • 2017-05-28详解C# 托管资源和非托管资源
  • 2017-05-28C#操作注册表的方法
  • 2017-05-28C# 实现阶乘 (递归,非递归) 实现代码
  • 2017-05-28c#使用正则表达式匹配字符串验证URL示例
  • 2017-05-28C# Socket网络编程实例
  • 2017-05-28C#实现IP摄像头的方法
  • 2018-08-22C#三层设计模式总结
  • 2017-05-28c# 钩子学习笔记
  • 2017-05-28C#实现文本文件读写方法汇总
  • 2017-05-28C#身份证号码验证是否正确

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#中的正则表达式双引号问题
    • 基于C# MBG 扩展方法类库的使用详解
    • 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
    • C#实现HTTP上传文件的方法
    • C#实现实体类与字符串互相转换的方法
    • C#与PHP的md5计算结果不同的解决方法
    • C#图片压缩的实现方法
    • C#跨窗体操作(引用传递) 实例代码
    • C#实现托盘程序并禁止多个应用实例运行的方法
    • C#画笔Pen绘制光滑模式曲线的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有