如何做成outlook风格的界面

解决方案 »

  1.   

    左边用TREEVIEW可以的,右边可以根据左边的选择设置各控件不同的属性
      

  2.   

    左边用treeview,右边动态改变就行了
      

  3.   

    左边用treeview,右边动态改变就行了
      

  4.   

    左边用treeview,右边动态改变就行了
      

  5.   

    先绘制一个tree,右边建议使用sstab先绘制你的tree在tree的nodeclick事件中使sstab跳到不同的界面!!下面是一段绘制tree的代码
    Option Explicit
    Dim Rs As ADODB.RecordsetDim rs1 As ADODB.RecordsetDim i As IntegerDim R As IntegerPrivate m_cn As cNeoCaptionDim RsTrv(5) As ADODB.RecordsetDim Nodx As Node'*****************用于刷新trv控件******************
    '              需要定义全局变量k和l               *
    '**************************************************Public Sub FreTrv()Trv.Nodes.Clear
    '
    'K = 0 ''定义动态集'L = "0" ''定义开始的号码"
    ''先绘制第一个节点
    Set Nodx = Trv.Nodes.Add(, , "L" & "0", "重庆市")
    Nodx.Image = 1
    Call WriteNode("", 0, "L" & "0")End Sub
    '**************************************************
    ''****************用于绘制节点*********************
    '              需要上级单位的编码                 *
    '**************************************************
    Public Sub WriteNode(ByVal l As String, ByVal s As Integer, Ssdq As String)
    Dim k As Integer
    k = s + 1
    Set RsTrv(k) = New ADODB.Recordset
    Sql = "select * from jgdj where jgbm like '" & l & "%' and djbm like '0%' and len(jgbm)=(" & Len(l) & "+2)"
    RsTrv(k).Open Sql, Cnns, adOpenForwardOnly, adLockReadOnly
    If RsTrv(k).EOF Then  ''当没有数据存在的时候
        RsTrv(k).Close
        Set RsTrv(k) = Nothing
        Exit Sub
    Else ''当有记录存在的时候
        While Not RsTrv(k).EOF
            '''绘制节点
            Set Nodx = Trv.Nodes.Add(Ssdq, tvwChild, "L" & RsTrv(k)!Jgbm, RsTrv(k)!jgmc)
            Nodx.Image = k
            ''进行递规
            Call WriteNode(RsTrv(k)!Jgbm, k, "L" & RsTrv(k)!Jgbm)
            
            '''绘制完毕
            RsTrv(k).MoveNext
        Wend
    End If
    RsTrv(k).Close
    Set RsTrv(k) = Nothing
        
    End Sub
      

  6.   

    这里是nodeclick的代码Private Sub Trv_NodeClick(ByVal Node As MSComctlLib.Node)
    select case node.key
        case 节点1
           '跳到第一页
           sstab1.index=0
           sstab1_clikc 0
        case 节点2
           '跳到第二页
           sstab1.index=1
           sstab1_clikc 1
        .....
        .....
        end select 
    End Sub
      

  7.   

    左边用treeview,右边用无模Form.
    添加一个ToolBar1和StatusBar1
    Dim fSubForm as FormPrivate Sub Form_Load()
    Set fSubForm= New frm右边窗口
    Load fSubForm
    fSubForm.Show vbModeless, Me
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        
        Dim i As Integer
        'close all sub forms
        For i = Forms.Count - 1 To 1 Step -1
            Unload Forms(i)
        NextEnd Sub
    可以相应paint和resizePrivate Sub Form_Paint()On Error Resume Next
    ToolBar1.Width = Width
    TreeView1.Top = ToolBar1.Height
    TreeView1.Height = Me.ScaleHeight - ToolBar1.Height - StatusBar1.HeightfSubForm.Top = Me.Top + ToolBar1.Height * Height / ScaleHeight + 650
    fSubForm.Left = Me.Left + TreeView1.Width * Width / ScaleWidth
    fSubForm.Height = TreeView1.Height * Height / ScaleHeight - 650
    fSubForm.Width = Me.Width + Me.Left - fSubForm.Left
    End SubPrivate Sub Form_Resize()
    Refresh
    End Sub还有点问题,就是650啊,呵呵,那个是form的controlbox的高度,不知道如何能搞出来.