怎样让程序运行以后用户可以调整listbox框的大小啊?

zxwitsme 2003-05-27 10:20:12
让程序运行以后用户把鼠标放在ListBox的边框上可以拖动来改变大小,怎么实现啊?
谢谢了
...全文
216 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
flxa 2003-05-28
  • 打赏
  • 举报
回复
关注啊!
qekong 2003-05-28
  • 打赏
  • 举报
回复
学习!!!!
boywang 2003-05-28
  • 打赏
  • 举报
回复
Private Sub Command2_Click()
Dim i As Integer
For i = 0 To 5
List1.AddItem "Item" & CStr(i)
Next i
List1.SetFocus
List1.ListIndex = 5
End Sub

xiaoxinghappy 2003-05-28
  • 打赏
  • 举报
回复
'---------------------------------------------------------------------------
'给 ListBox 加上水平滚动条
'
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Private Const LB_SETHORIZONTALEXTENT = &H194

Private Sub Form_Load()
SendMessage List1.hwnd, LB_SETHORIZONTALEXTENT, 700, ByVal 0&
End Sub
'---------------------------------------------------------------------------


xiaoxinghappy 2003-05-28
  • 打赏
  • 举报
回复
'---------------------------------------------------------------------------
'给 ListBox 加上水平滚动条
'
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Public Const LB_SETHORIZONTALEXTENT = &H194

Private Sub Form_Load()
SendMessage List1.hwnd, LB_SETHORIZONTALEXTENT, 700, ByVal 0&
End Sub
'---------------------------------------------------------------------------
yefm 2003-05-27
  • 打赏
  • 举报
回复
up
zxwitsme 2003-05-27
  • 打赏
  • 举报
回复
还有就是我执行list1.additem增加一行以后想让它自动翻滚到最后一行,怎么做啊,它总是自动翻滚到最上面
zxwitsme 2003-05-27
  • 打赏
  • 举报
回复
不是很好用啊,还是设置滚动算了,不过list只能上下翻滚,左右显示不下了怎么不出来左右滚动条啊?
xiaoxinghappy 2003-05-27
  • 打赏
  • 举报
回复
首先应该建立锚点,就是当鼠标放在什么位置时可以修改ListBox 的大小。

'下面是一个简单的例子,新建一个窗体,然后在窗体上放一个ListBox 和PictureBox
'在PictureBox 上按住鼠标左键移动,可以改变ListBox 的大小

Option Explicit

Private msngPreX As Single
Private msngPreY As Single


Private Sub Form_Load()
Picture1.Top = List1.Top + List1.Height
Picture1.Left = List1.Left + List1.Width
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
msngPreX = X
msngPreY = Y
End If
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
List1.Width = List1.Width + (X - msngPreX)
List1.Height = List1.Height + (Y - msngPreY)
Picture1.Top = List1.Top + List1.Height
Picture1.Left = List1.Left + List1.Width
End If
End Sub

7,787

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧