我写的代码可以实现dataGridView 像TreeView样能展开收缩(可折叠) (比如 一列中主标头 单位  子标头是福州公司,上海公司)但是点下福州公司下的数据再点下“单位”主标头, 那些福州公司下的数据无法折叠 直接串到第二行。 有没办法当单击“单位”时候 能把福州公司下的数据折叠,或者 禁止点击“单位”标头。    小弟水平有限请高手补充几行代码实现. 谢谢!
   public Form1()
        {
            InitializeComponent();
            DataGridViewColumn column = new DataGridViewTextBoxColumn();
            column.HeaderText = "单位";
            collapseDataGridView1.Columns.Insert(0,column);            column = new DataGridViewTextBoxColumn();
            column.HeaderText = "联系人";
            collapseDataGridView1.Columns.Insert(1, column);            column = new DataGridViewTextBoxColumn();
            column.HeaderText = "销售额";
            collapseDataGridView1.Columns.Insert(2, column);        }        private void Form1_Load(object sender, EventArgs e)
        {
            InitDataGridView(this.collapseDataGridView1);
        }
        private void InitDataGridView(DataGridView dgv)
        {
            /*第一行可折叠行*/
            CollapseDataGridViewRow collapseRow = new CollapseDataGridViewRow();
            collapseRow.IsCollapse = true;            DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell();
            cell.Value = "福州01科技有限公司";
            collapseRow.Cells.Add(cell);            cell = new DataGridViewTextBoxCell();
            cell.Value = "王小二";
            collapseRow.Cells.Add(cell);            cell = new DataGridViewTextBoxCell();
            cell.Value = "10000.0000";
            collapseRow.Cells.Add(cell);            /*第二行可折叠行*/
            CollapseDataGridViewRow collapseRow2 = new CollapseDataGridViewRow();
            collapseRow2.IsCollapse = true;            DataGridViewTextBoxCell cell2 = new DataGridViewTextBoxCell();
            cell2.Value = "国横有限公司";
            collapseRow2.Cells.Add(cell2);            cell2 = new DataGridViewTextBoxCell();
            cell2.Value = "张国";
            collapseRow2.Cells.Add(cell2);            cell2 = new DataGridViewTextBoxCell();
            cell2.Value = "10000.0000";
            collapseRow2.Cells.Add(cell2);            /*第三行可折叠行*/
            CollapseDataGridViewRow collapseRow3 = new CollapseDataGridViewRow();
            collapseRow3.IsCollapse = true;            DataGridViewTextBoxCell cell3 = new DataGridViewTextBoxCell();
            cell3.Value = "飞鸿有限公司";
            collapseRow3.Cells.Add(cell3);            cell3 = new DataGridViewTextBoxCell();
            cell3.Value = "陈宝";
            collapseRow3.Cells.Add(cell3);            cell3 = new DataGridViewTextBoxCell();
            cell3.Value = "60000.0000";
            collapseRow3.Cells.Add(cell3);
            /*子行的行头标题*/
            DataGridViewRow headerRow = new DataGridViewRow();
            cell = new DataGridViewTextBoxCell();
            cell.Value = "订单号";
            headerRow.Cells.Add(cell);            cell = new DataGridViewTextBoxCell();
            cell.Value = "订单日期";
            headerRow.Cells.Add(cell);            cell = new DataGridViewTextBoxCell();
            cell.Value = "订单金额";
            headerRow.Cells.Add(cell);            cell = new DataGridViewTextBoxCell();
            cell.Value = "业务员";
            headerRow.Cells.Add(cell);
            //将标题行添加至可折叠行的子行中
            collapseRow.Rows.Add(headerRow);
            collapseRow2.Rows.Add(headerRow);
            DataGridViewRow dataRow3 = new DataGridViewRow();
            cell3 = new DataGridViewTextBoxCell();
            cell3.Value = "XSDD075503";
            dataRow3.Cells.Add(cell3);
            collapseRow3.Rows.Add(headerRow);
            collapseRow3.Rows.Add(dataRow3);
            for (int i = 0; i < 5; i++)
            {
                DataGridViewRow dataRow = new DataGridViewRow();
                cell = new DataGridViewTextBoxCell();
                cell.Value = "XSDD075501" + i.ToString();
                dataRow.Cells.Add(cell);
                cell = new DataGridViewTextBoxCell();
                cell.Value = "2011-4-1" + i.ToString();
                dataRow.Cells.Add(cell);                cell = new DataGridViewTextBoxCell();
                cell.Value = i * 1000;
                dataRow.Cells.Add(cell);                cell = new DataGridViewTextBoxCell();
                cell.Value = "SZMMY0755";
                dataRow.Cells.Add(cell);
                //将订单的数据行添加至可折叠行的子行中
                collapseRow.Rows.Add(dataRow);                collapseRow2.Rows.Add(dataRow);            }            //将可折叠的行添加至GridView
            dgv.Rows.Add(collapseRow);
            dgv.Rows.Add(collapseRow2);
            dgv.Rows.Add(collapseRow3);            
          }