直接用TreeView做不行吗?无非是横行上多些内容.

解决方案 »

  1.   

    不一定要在DataGridView下实现这种效果,比如有和这个类似的控件也行请各位大侠指点,在线等...谢谢!
      

  2.   

    thanks to zhangyu_xl:请问怎么实现,“wbs代码”和“wbs名称”两列的值怎么办,treeview 只是在单列中?
      

  3.   

    treeview可以实现左边的树形节点
      

  4.   

    用TreeView 加一个ListView Detail模式,两个的onselectitemchanged 处理一下就行了。
      

  5.   

    写个自定义控件,由datagridview与treeview组成,似乎与你的效果会不一样,不过也是好主意
    外表会不一样,写还是简单.
      

  6.   

    thanks to nooning:
    你的思路很好,能举个例子吗?
      

  7.   

    何苦呢,直接用三方控件,DotNetBar -DataGrid 设置几个属性就是你想要的结果了
      

  8.   

    左边一个TreeView右边一个DGV拼凑起来, 应该可行,不过难度在于一要调整行高使之看起来象在同一行,二要实现同步展开和折叠(控制右边DGV的行Visible属性应该可以办到)
      

  9.   

    private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
            {
                Brush forcolor;
                if ((e.State & TreeNodeStates.Selected)>0)
                {
                    e.Graphics.FillRectangle(new SolidBrush(SystemColors.Highlight), e.Bounds);
                    forcolor = new SolidBrush(Color.White);
                }
                else
                {
                    e.Graphics.FillRectangle(new SolidBrush(Color.White), e.Bounds);
                    forcolor = new SolidBrush(Color.Black);
                }
                   
                e.DrawDefault = true;            e.Graphics.DrawString("WBS代码", this.Font, forcolor, new PointF(e.Bounds.X + 100, e.Bounds.Y));
                e.Graphics.DrawString("WBS名称", this.Font, forcolor, new PointF(e.Bounds.X + 300, e.Bounds.Y));
              
            }另设置:this.treeView1.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll;
      

  10.   


    thanks to h_w_king:
    方法不错,但是达不到需求
      

  11.   

    用Developer Express .NET 里面的控件应该很容易能达到这种效果吧
      

  12.   

    用dev express的Treelist控件,很容易实现 
      

  13.   

    用第三方控件吧.
    CompenentOne里的flexGrid可以实现.
      

  14.   

    貌似第三方控件如DotNetBar等中的Tree可以实现这样的显示效果!