如何调整在TextBox中输入信息的位置?
解决方案 »
- 在(VBS)网页编程中:action 和 onsubmit() 或oncheck()事件可以同时用吗? 怎样才能做到根据(onsubmit)事件触发(action)命令.我的程序怎么是同时响应的阿,请各位大虾诊断一下,谢谢了,各位大虾!!
- 窗口最大化时控件Resize的问题
- 动态创建的datagrid控件的数据源问题,到datasource一直报错,大侠请进?
- 十万有点火急datareport
- 紧急求助:关于vbscript能否调用api的问题
- 用VB匯出Excel,關閉Excel時如何釋放內存
- VB调用dll,结果vb开发环境直接突然关闭了
- 非常简单的问题,快来帮忙
- vb7出来了,vb7与vb6不兼容,vb6还有什么搞头吗?还能搞多久呢?
- mschart.ocx 那有下载
- 一个很无聊的问题
- 电子秤系统的实现
'插入点置于最后
Text1.SelStart = Length(Text1.Text)
Text1.SelLength = 0
'插入点置于最前
Text1.SelStart = 0
Text1.SelLength = 0
开始我在TextBox中输入一行信息,然后回车,再输入第二行信息,但是两行信息间的行距比较宽,我想把下面的信息往上移一点,可不可以实现,就像PictureBox控件的CurrentX,CurrentY属性一样可以调整位置。
Text1.SelLength = 0
Text1.SetFocus
或者在其他控件上进行显示,比如PictureBox。
Picture1.CurrentX = 0
Picture1.CurrentY = -Slider1.Value
Picture1.print Text1.text
这样我可以通过改变Slider控件的值来移动从Text1中获取的字符的显示位置
用richtextbox试试,至少可以变字体大小实现,也许还支持行距的
http://www.cnblogs.com/rainstormmaster/archive/2006/02/20/333731.html
'声明
Private Const EM_GETLINE = &HC4
Private Const EM_LINELENGTH = &HC1
Private Const EM_LINEINDEX = &HBB
Private Const EM_GETLINECOUNT = &HBA
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)
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
'自定义文本读取函数
Public Sub TB_GetLine(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 SubPrivate Sub Text1_Change()
I = SendMessage(Text1.hwnd, &HB0&, 0, 0)
j = I / 2 ^ 16
lineno = SendMessage(Text1.hwnd, &HC9&, j, 0)
If lineno = 0 Then
Dim str1 As String
Call TB_GetLine(Text1.hwnd, 0, str1)
Picture1.Cls
Picture1.CurrentX = 0
Picture1.CurrentY = -(Slider1.Value - 1)
Picture1.Print str1
Picture1.FontName = Text1.FontName
Picture1.FontSize = Text1.FontSize
Picture1.ForeColor = Text1.ForeColor
Else
Dim str2 As String
Call TB_GetLine(Text1.hwnd, 1, str2)
Picture1.CurrentX = 0
Picture1.CurrentY = 4
Picture1.Print str2
Picture1.FontName = Text1.FontName
Picture1.FontSize = Text1.FontSize
Picture1.ForeColor = Text1.ForeColor
End If
Picture2.PaintPicture Picture1.Image, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbSrcCopy
End SubPrivate Sub Timer1_Timer()
Text1_Change
End Sub