如题

解决方案 »

  1.   

    设置treeview的height就应该可以了吧
      

  2.   

    TreeView.Scrollable = true
      

  3.   

    回3楼
    TreeView.Scrollable = true 
    是当节点超过范围才出现滚动条
    回4楼:
    treeview的大小是固定的
      

  4.   

    放一个VScrollBar 控件放在TreeView上面
      

  5.   

    通过reflector查看treeview的源代码:找到如下函数:
        internal void ForceScrollbarUpdate(bool delayed)
        {
            if (!base.IsUpdating() && base.IsHandleCreated)
            {
                base.SendMessage(11, 0, 0);
                if (delayed)
                {
                    UnsafeNativeMethods.PostMessage(new HandleRef(this, base.Handle), 11, (IntPtr) 1, IntPtr.Zero);
                }
                else
                {
                    base.SendMessage(11, 1, 0);
                }
            }
        }
    我在程序中使用SendMessage(11, 1, 0),没有成功
      

  6.   

    回六楼:
    你的方法我试过,关键是,你如何让treeview的客户区(Client)整个随着VScrollBar移动,而treeview本身不动?
      

  7.   

    将TreeView放在其它有滚动条的控件中
      

  8.   

    回六楼:
    你的方法我试过,关键是,你如何让treeview的客户区(client)移动,而treeview本身不动?
      

  9.   

            private void Form1_Load(object sender, EventArgs e)
            {
                panel1.BackColor = treeView1.BackColor;
                panel1.AutoScroll = true;
                panel1.BorderStyle = BorderStyle.FixedSingle;
                panel1.Height = 200;
                panel1.Width = treeView1.Width + 20;            treeView1.Height = 800;
                treeView1.Parent = panel1;
                treeView1.BorderStyle = BorderStyle.None;
                treeView1.Top = 0;
                treeView1.Left = 0;
            }创建一个自动滚动的Panel控件,将treeView放到这个控件中,不知道这个代码是否可以满足楼主的要求
      

  10.   

    我的问题是:treeview在节点没有超过范围的时候也显示滚动条
      

  11.   

    我上述代码,在节点没有超出范围时,也一样显示滚动条,只是这个显示范围不是靠treeView来控制,而是靠panel来控制,这个程序我已经调试过了,
    可以实现这个要求