CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何在文本框的multiline属性设为true后所输入的text中得到各行文字?

楼主dzgld(古道东风)2002-03-09 16:39:11 在 VB / 基础类 提问

在文本框的multiline属性设为true后可以输入多行文字,可是用什么语句得到text属性中的某一行文字呢? 问题点数:30、回复次数:3Top

1 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2002-03-09 16:42:24 得分 10

发送“EM_GETLINE”消息  
  Public   Const   EM_GETLINE   =   &HC4  
   
  wParam=行号(0开始)  
  lParam=字符串缓冲区地址  
  Top

2 楼yefm(百聊)回复于 2002-03-09 20:17:44 得分 10

Public   Const   EM_GETLINE   =   &HC4  
  Public   Const   EM_LINEINDEX   =   &HBB  
  Public   Const   EM_LINELENGTH   =   &HC1  
  Declare   Function   SendMessage   Lib   "user32"   Alias   "SendMessageA"   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long  
  Declare   Sub   RtlMoveMemory   Lib   "KERNEL32"   (lpvDest   As   Any,   lpvSource   As   Any,   ByVal   cbCopy   As   Long)  
   
  '读取第21行字符  
  Private   Sub   Command1_Click()  
          Dim   S   As   String,   Length   As   Integer,   pos   As   Long  
           
          pos   =   SendMessage(Text1.hwnd,   EM_LINEINDEX,   21,   ByVal   0&)  
          Length   =   SendMessage(Text1.hwnd,   EM_LINELENGTH,   pos,   ByVal   0&)  
          S   =   String(Length,   Chr(0))  
          RtlMoveMemory   ByVal   S,   Length,   2  
          SendMessage   Text1.hwnd,   EM_GETLINE,   21,   ByVal   S  
           
          MsgBox   S,   ,   "第21行"  
  End   Sub  
   
  Top

3 楼tg123(T.G.)回复于 2002-03-09 21:43:01 得分 10

吧richtextbox   改为textbox就行了  
   
   
  'Adding   line   numbers   to   the   front   of   text   in   a   rich   text   box    
  'Example   by   HeSaidJoe  
  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   Function   SendMessageStr   Lib   "user32"   Alias   "SendMessageA"   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   String)   As   Long    
  Private   Const   EM_GETLINE   =   &HC4    
  Private   Const   EM_GETLINECOUNT   =   &HBA    
  Private   Const   EM_LINEINDEX   =   &HBB    
  Private   Const   EM_LINELENGTH   =   &HC1    
  Private   Sub   Command1_Click()    
          Dim   lngCount   As   Long    
          Dim   lngLineIndex   As   Long    
          Dim   lngLength   As   Long    
          Dim   strBuffer   As   String    
          Dim   strRichText   As   String    
          Dim   i   As   Integer    
          'Get   Line   count    
          lngCount   =   SendMessage(RichTextBox1.hwnd,   EM_GETLINECOUNT,   0,   0)    
          With   RichTextBox1    
                  For   i   =   0   To   lngCount   -   1    
                          'Get   line   index    
                          lngLineIndex   =   SendMessage(.hwnd,   EM_LINEINDEX,   i,   0)    
                          'get   line   length    
                          lngLength   =   SendMessage(.hwnd,   EM_LINELENGTH,   lngLineIndex,   0)    
                          'resize   buffer    
                          strBuffer   =   Space(lngLength)    
                          'get   line   text    
                          Call   SendMessageStr(.hwnd,   EM_GETLINE,   i,   ByVal   strBuffer)    
                          'Number   each   line    
                          strRichText   =   strRichText   &   CStr(i   +   1)   &   "   "   &   strBuffer   &   vbCrLf    
                  Next    
                  'rewrite   numbered   text   in   RichTextBox    
                  .Text   =   strRichText    
          End   With    
  End   Sub  
  Private   Sub   Form_Load()    
          With   RichTextBox1    
                  .Text   =   "line   one"   &   vbCrLf    
                  .Text   =   .Text   &   "line   two"   &   vbCrLf    
                  .Text   =   .Text   &   "line   three"    
          End   With    
  End   SubTop

相关问题

  • vfp 文本框的两个属性
  • 如何设定文本框的字体属性?
  • 请问各位老大,文本框type属性有用吗?
  • 简单问题啊,把属性值写到文本框里
  • 请问怎样改变文本框的数据格式属性
  • 如何设置多行文本框的属性,在线等待!
  • 急!!!!!!!关于表单中的文本框的disabled属性问题
  • 关于textarea多行文本框属性的问题
  • 文本框的readonly属性在JS中怎么用?
  • .net中多行文本框的Maxlength属性为什么失效?

关键词

  • 属性
  • 文字
  • em
  • getline
  • byval
  • sendmessage
  • hc
  • hwnd
  • pos
  • long

得分解答快速导航

  • 帖主:dzgld
  • zyl910
  • yefm
  • tg123

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo