各位﹕
一個form中有一個treeview和一個listview﹐放在一個frame中﹐請問怎么可以拖動其邊框﹐就是treeview.width+listview.width=frame.width呢? treeview如何拖動其字節點﹐導致數據變化? 各位幫個忙咯﹐若是沒有正確答案﹐分就散掉了。
一個form中有一個treeview和一個listview﹐放在一個frame中﹐請問怎么可以拖動其邊框﹐就是treeview.width+listview.width=frame.width呢? treeview如何拖動其字節點﹐導致數據變化? 各位幫個忙咯﹐若是沒有正確答案﹐分就散掉了。
解决方案 »
- 大家好!有没有关于VB下pc机与单片机串口通信这方面的资料,介绍一下或发一点给我,小弟急需,谢谢!
- 修改硬盘序列号
- 为什么SelectionFormula 传递到报表,在报表中无法显示BeginTime变量???
- VB 6.0如何与ACCESS 2000连接呀!
- 有办法让控件移动降低耗时吗
- 如何获取FILELISTBOX中的文件名???
- 100分!请问VB中如何使用RegOpenKeyEx函数(看msdn,看的我一头雾水,不会使用)谢谢^-^
- 如何解决连接处理速度慢的问题!急
- 高分求助:编写一个客户端软件的问题
- 天下怪事,在线等待答案,马上结贴
- 水晶报表的简单问题,承蒙指点!
- vb中的image控件,什么属性能控制两个image控件哪个显示在最上面?急
具体实现方法.新建一个工程,在窗体上放一个treeview(lstPers)和一个listview(lstTel),还有一个picturebox(Splitter),摄制PictrueBox的MousePointer属性为9,括号里代表为该控件取的名称.
然后在窗体写入如下代码:
Option Explicit
'定义需要使用的变量
Private Const P_ECART = 3
Private x1 As Integer, x2 As Integer
Private y1 As Integer, y2 As Integer
Private width1 As Integer, width2 As Integer
Private height1 As Integer, height2 As Integer
Private glbfrmInSizeX As Long
'初始化窗体和变量
Private Sub Form_Load()
glbfrmInSizeX = &H7FFFFFFF
Form_Resize
End Sub
'当鼠标按下切分条Splitter的时候
Private Sub splitter_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbLeftButton Then
'如果是鼠标左键按下,设置切分条颜色,并将鼠标坐标值付给变量glbfrmInSizeX
Splitter.BackColor = &H808080
glbfrmInSizeX = CLng(x)
Else
If glbfrmInSizeX <> &H7FFFFFFF Then
'如果是鼠标右键按下,即认为是松开切分条
splitter_MouseUp Button, Shift, x, y
End If
glbfrmInSizeX = &H7FFFFFFF
End If
End Sub'当切分条Splitter移动的时候
Private Sub splitter_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If glbfrmInSizeX <> &H7FFFFFFF Then
If CLng(x) <> glbfrmInSizeX Then
'将切分条的坐标,按鼠标位置移动
Splitter.Move Splitter.Left + x, y1, P_ECART, ScaleHeight - 2
glbfrmInSizeX = CLng(x)
End If
End If
End Sub
'当鼠标松开切分条Splitter的时候
Private Sub splitter_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If glbfrmInSizeX <> &H7FFFFFFF Then
If CLng(x) <> glbfrmInSizeX Then
Splitter.Move Splitter.Left + x, y1, P_ECART, ScaleHeight - 2
End If
glbfrmInSizeX = &H7FFFFFFF
Splitter.BackColor = &H8000000F
'判断切分条有没有出窗体边界,另切分条不能移出窗体边界
If Splitter.Left > 60 And Splitter.Left < (ScaleWidth - 60) Then
lstPers.Width = Splitter.Left - lstPers.Left
ElseIf Splitter.Left < 60 Then
lstPers.Width = 60
Else
lstPers.Width = ScaleWidth - 60
End If
Form_Resize
End If
End Sub
'窗体的大小改变
Private Sub Form_Resize()
Const B_ECART = 1
On Error Resume Next
'赋值
y1 = B_ECART
height1 = ScaleHeight - B_ECART * 2
x1 = B_ECART
width1 = lstPers.Width
x2 = x1 + lstPers.Width + P_ECART - 1
width2 = ScaleWidth - x2 - B_ECART
'调整ListBox和Splitter适应位置
lstPers.Move x1 - 1, y1, width1, height1
lstTel.Move x2, y1, width2 + 1, height1
Splitter.Move x1 + lstPers.Width - 1, y1, P_ECART, height1
End Sub如果还有什么问题,留下信箱,我给你发个分割线窗体的代码.
http://www.dapha.net/down/list.asp?id=1217
真的可以哦﹐但是鼠標形狀有點不穩定的。留下信箱給你﹐要發過來哦﹐謝謝了
[email protected]你能不能把node節點移動代碼貼一下﹐因為我這邊無法下載﹐汗。。
不得已.....
可以给我一份吗?
[email protected],,,谢谢了,
辛苦了。
15號發的帖。3天內正確答案就給分﹐所以最后那位....xiafei(阿飞) 只能下次啦
謝謝
rainstormmaster(rainstormmaster) ( )
偶不看代碼﹐偶只看你話能不能給偶結果...感謝跟貼各位﹑