如果不借助API来获取文本框的某一行的话,那就从头开始来查找回车换行符,并确认某一行的换行位置,再来确认某一行的文本内容。但要读取的行数处在textbox最后一行,那么通过这种方式效率就太低了。

想要快速提取文本框的某一行,必须要靠API才可以做的。

在此之前要先在窗体画一个文本框,文本框内容为:

张三

李四

王五

赵六

张七

同时在窗体上再画一个按钮。以下是用VB读取文本框某一行的内容的代码:

Private Const EM_GETLINE = &HC4

Private Const EM_LINELENGTH = &HC1

Private Const EM_LINEINDEX = &HBB

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Sub RtlMoveMemory Lib "KERNEL32" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)

Public Sub TextBoxGetLine(ByVal hWnd As Long, ByVal whichLine As Long, Line As String)

Dim length As Long, bArr() As Byte, bArr2() As Byte, lc As Long

lc = SendMessage(hWnd, EM_LINEINDEX, whichLine, ByVal 0&)

length = SendMessage(hWnd, EM_LINELENGTH, lc, ByVal 0&)

If length > 0 Then

ReDim bArr(length + 1) As Byte, bArr2(length - 1) As Byte

Call RtlMoveMemory(bArr(0), length, 2)     '准备一个存储器,传递消息之前先在存储器的前两个字节填入存储器的长度

Call SendMessage(hWnd, EM_GETLINE, whichLine, bArr(0))

Call RtlMoveMemory(bArr2(0), bArr(0), length)

Line = StrConv(bArr2, vbUnicode)

Else

Line = ""

End If

End Sub

Private Sub Command1_Click()

Dim vData As String

Dim rows As Long

rows = CInt(InputBox("请输入要读取数据的行数:", "输入"))

Call TextBoxGetLine(Text1.hWnd, rows, vData)

MsgBox vData

End Sub

运行此程序后,在弹出的输入框,输入1,输出结果是:李四 (有必要说明的是:TextBox 的起始行是从0起算)

来源:济亨网

html 读取 vb,VB编程:vb读取textbox控件某一行的方法相关推荐

  1. C#TextBox控件实现数据绑定的方法

    经常写用一个TextBox显示某个对象,然后编辑之后再保存的程序.以前都是在TextBox_TextChanged事件中修改对象的值,或者保存的时候再读取TextBox.Text属性保存对象的值.这样 ...

  2. VB.NET学习笔记:自定义控件之扩展TEXTBOX控件——水印文字提示效果

    测试环境:windows 7和Microsoft Visual Studio 2017 看到一些优秀软件里的TEXTBOX文本框都有水印文字提示应该输入什么样的信息,获取光标后提示文字消失,光标离开后 ...

  3. VB根据窗体自动调整窗体内控件大小 注:实用,可以直接引用

    代码如下: Option Explicit Private ObjOldWidth     As Long       '保存窗体的原始宽度 Private ObjOldHeight     As L ...

  4. VB.NET怎样开发自定义Windows控件

    前言 Microsoft® Visual Basic® 的组件支持历来都是它的一大卖点,于是第三方软件开发商们纷纷开发出各种具有新功能性的可视控件 (也有少数非可视控件) 供 Visual Basic ...

  5. DotNetTextBox V2.0 Web Control(ASP.NET2.0 增强型TextBox控件,完全支持AJAX.NET)

    [控件界面] [控件介绍] 名称:DotNetTextBox V2.0 Web Control 免费无限制版 类型:ASP.NET2.0 增强型TextBox控件 作者: 小宝.NET2.0 主页:h ...

  6. 设置TextBox控件的高度文档翻译

    原文来自: https://www.codeproject.com/Articles/29140/Set-TextBox-Height 翻译:Jeffrey Chou 设置TextBox控件的高度(S ...

  7. 选中DataGridView行,将数据返填到TextBox控件

    这个代码有一个问题就是只能单击最后一列,事件才会发生!努力研究中......,如果有高手知道为什么也请指教一下,在此先谢过! using System; using System.Collection ...

  8. Winform编程中的treeview控件

    Winform编程中的treeview控件 treeview基础操作 treeview添加.删除节点操作 treeview节点展开与折叠 treeview节点重命名 treeview获取节点集合并设置 ...

  9. C#设置Textbox控件不可编辑

    前言 一般而言,Textbox中有两个属性可以对其进行防止编辑的设定,这是最基础的知识,也是我要提出的前两种方法.而后两种方法实际为一种,但可以应用于不同环境中. 一.ReadOnly属性 这样设置, ...

最新文章

  1. 进阶学习(3.13) Proxy Pattern 代理模式
  2. FPM傅里叶叠层衍射成像笔记
  3. sql服务找不到服务器,我找不到SQL服务管理器
  4. graphpad如何做x轴在上方的图_数据分析最有用的25个 Matplotlib图
  5. [Forward] 因为火炬,所以迟到,工资照扣
  6. 关于线程池ThreadPoolExecutor使用总结
  7. 《统一沟通-微软-实战》-3-部署-Exchange 2010-2-自定义安装
  8. Sping Environment为Null的原因和解决方法
  9. OpenLayers学习入门篇
  10. 启动jar包报错: 找不到或无法加载主类
  11. win7自带照片查看器
  12. 延迟队列DelayQueue原理
  13. unexpected indent解决方法
  14. win7定时关机命令_如何让win7操作系统实现定时关机,以防我们忘记电脑关机
  15. jmeter汉化仍有英文_【jmeter】Jmeter 修改启动默认语言:将英文版修改为其他语言版本...
  16. java网易云信怎么用_网易云信 SDK
  17. 大学计算机课什么时候学,关于2020年“大学计算机基础”课程水平测试时间地点安排的通知...
  18. 自动化测试工程师应聘要求
  19. Linux·内核编译错误
  20. [机器学习]---如何用机器学习来判定红楼梦后40回是否曹雪芹所写

热门文章

  1. c语言判断字符串中是否包含非数字,【新手】【求思路】如何判断用户输入的字符串中是否含有非数字?...
  2. 网页html修改,对学生信息进行修改网页html代码.doc
  3. MongoDB教程——第2天
  4. 在Linux Ubuntu 18.04.x上安装和配置ActiveMQ-Artemis
  5. SQL Server 数据库角色简介
  6. Odoo10参考系列--QWeb报表
  7. 蓝牙鼠标windows linux,Ubuntu下使用蓝牙无线鼠标[图]
  8. python手机销售系统结论于心得_python实现手机销售管理系统
  9. 样条曲面_用SolidWorks曲面制作一个:台灯底座造型
  10. java lambda表达式_「JAVA8」- Lambda 表达式