各位帮忙,老板着急要我用VB做一个这样的界面由五个窗口组成,累似Delphi2007风格的界面,
中间一个主窗口,左右两边各两个,需要各窗口可以由
Splitter自由拖动大小.
我是VB新手,谢谢.示例如下:
菜单
----------------------------
| |
Form1 | | Form3
| |
| |
------- Main Form ----------
| |
| |
Form2 | | Form4
| |
----------------------------
解决方案 »
- 高分:导出日期字段到excel里面出错的问题
- VB中如何用dos的ftp命令上传下载文件?
- 一个弱弱的问题:下载的控件放在vb的哪里才可以用?
- 100分求用richtextbox实现类似于WORD的基本文本编排功能,有没有这方面例子或控件,要求见内
- 高手们:如何加快StretchBlt的运行速度呀
- 关于时间问题?
- inet下载xml文件的问题
- 用100分收集可以电子书籍的FTP地址~!!!!!
- DataCombo控件如何动态与记录集邦定?
- 关于Crystal Report,如何在一个页面内打印两个毫不相干的表?
- 有2个问题
- 用VB打开一个txt文件,每一行是一个点的坐标,选择合适的坐标系统,将这些点绘制成图形
示例如下:
菜单
------------------------------
¦ ¦
Form1 ¦ ¦ Form3
¦ ¦
¦ ¦
------- Main Form ------------
¦ ¦
¦ ¦
Form2 ¦ ¦ Form4
¦ ¦
------------------------------
2) 画出 2 个 Frame 控件,分别改名为lstPers 和lstTel,去掉 Caption。
3) 画出一个瘦高形状的图片Picture1,把图片的MouseIcon改为左右箭头,用来做切分条,改名为Splitter;
4) 在Form1中编写以下代码:Option Explicit
'定义需要使用的变量
Private Const P_ECART = 20
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_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 - StatusBar1.Height - 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 - StatusBar1.Height - 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
'当鼠标按下切分条Splitter的时候
Private Sub splitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
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
'窗体的大小改变
Private Sub Form_Resize()
Const B_ECART = 1
On Error Resume Next
'赋值
y1 = B_ECART
height1 = ScaleHeight - StatusBar1.Height - 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