VB中根据文本行数显示滚动条(动态显示滚动条)的方法
很多时候,我们不想一开始就显示滚动条,当文本到达指定行数文本框无法完全显示的时候再显示它,由于Scrollbar属性是只读的,无法在运行时的代码中改变这个属性,只能使用下面的API实现这个功能:
Public Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long
Public Const SB_HORZ = 0 '水平
Public Const SB_VERT = 1 '垂直
Public Const SB_BOTH = 3 '两者都有
在Change事件中,调用就可以了:
Private bShow As Boolean '是否已经改变Scrollbars属性,你也可以省略这个控制
Private Sub txtText_Change()
txtText.SelStart = Len(txtText.Text)
If bShow = True Then Exit Sub '读取一个变量的速度要比读取一个属性快,看下C++
If TextHeight(txtText.Text) > txtText.Height Then
ShowScrollBar txtText.hwnd, SB_VERT, True
bShow = True '下次不用再判断
End If
End Sub
相关文档:
开始使用vb的时候喜欢用手画出那个控件的位置.然后一个一个的拖动,一点一点的移动.直到感觉满意了为止.如果是控件多了这个就很麻烦了
一不小心可能会将谋个控件拖到一边去
所以,我们在以后的作品中
尽量使用代码来定义控件位置,,要灵活的掌握坐标位置.,可以使用自定义坐标.使用像素来更好的来分区显示控件.
& ......
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4
Private closeTime As String
Sub AdjustTokenPrivilegesForNT()
......
就这么一个函数就解决了那位仁兄3天多的工作
唉~!真被一个函数玩死了
这里顺便帖出来吧
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Microsoft.VisualBasic.Shell( ......