软件注册站
热情软件屋

 
如何实现文本框的自动滚动
编号: QA000476    
建立日期: 1999年2月2日 最后修改日期: 2005年8月22日
所属类别: Visual Basic - 标准控件
   
    vb
    win98
    如何实现文本框的自动滚动?(白凯华)
   
    每向文本框中输入一行文本,紧跟着输入:text1.SelStart = Len(Text1.Text)使光标到文本的最后一行,就可以实现自动滚屏。
    使用API函数可以实现滚动到文本框的任意一行。方法是向文本框发送EM_LINESCROLL 来滚动文本。wParam参数表明横向移动的字符数,而lParam是纵向移动的行数。下面是一个例子:
    首先建立一个窗体,在其上放置两个按钮、一个文本框。将文本框的MultiLine属性设为True,ScrollBars属性设为3-Both。
    然后输入以下代码:
     Const EM_LINESCROLL = &HB6
     Private Declare Function SendMessage Lib "User32" Alias _
     "SendMessageA" _
     (ByVal hWnd As Long, _
     ByVal wMsg As Integer, _
     ByVal wParam As Integer, _
     ByVal lParam As Long) As Long
    
     Private Sub Form_Load()
     Dim intLineIndex As Integer, intWordIndex As Integer
    
     'Initialize Text1.
     Text1.Font = "Courier New"
     Text1.Text = ""
     For intLineIndex = 1 To 25 'Add 25 lines of text.
     Text1.Text = Text1.Text & "Line" & Str$(intLineIndex)
     For intWordIndex = 1 To 5 'Make each line 12 words
     'long.
     Text1.Text = Text1.Text & " Word" & Str$(intWordIndex)
     Next intWordIndex
     Text1.Text = Text1.Text & vbCrLf
     Next intLineIndex
    
     Command1.Caption = "Vertical"
     Command2.Caption = "Horizontal"
     End Sub
    
     Private Sub Command1_Click()
     Dim lngRet As Long
    
     lngRet = SendMessage(Text1.hWnd, EM_LINESCROLL, 0, 5&)
     End Sub
    
     Private Sub Command2_Click()
     Dim lngRet As Long
    
     lngRet = SendMessage(Text1.hWnd, EM_LINESCROLL, 5, 0&)
     End Sub
    

    
    杨永的意见:
    在VB.net里用下面的办法最好
    textbox1.AppendText(string)
    即用 appendtext 来增加字符就可以了,这样就可以实现自动下滚。
    
    相关问题:
    QA002286 "每次调用RICHBOX控件时,如何使滚动条自动下拉到文本末端"

    

此问题由李海、二胡回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 标准控件, screen, button, combo, checkbox, listbox

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio