当前位置: 代码迷 >> C# >> DataGridView窗口底部增多汇总Lable的方法
  详细解决方案

DataGridView窗口底部增多汇总Lable的方法

热度:66   发布时间:2016-05-05 03:23:00.0
DataGridView窗口底部增加汇总Lable的方法
 int height = this.dataGridView1.Height; 
            int scrollbarheight = this.dataGridView1.Columns.GetColumnsWidth(DataGridViewElementStates.None) > this.dataGridView1.Width ? 16 : 0;//水平滚动条高 
            int rowheaderswidth = this.dataGridView1.RowHeadersVisible ? this.dataGridView1.RowHeadersWidth : 0;//行标题宽度
           // int rowheaderswidth =40
            int length = rowheaderswidth;
            Panel panel = new Panel();
            panel.Name = this.dataGridView1.Name;
            panel.BackColor = Color.Red;
            panel.Left = 1;
            panel.Top = height - scrollbarheight - 23 - 1;
            dataGridView1.Controls.Add(panel); 

            for (int i = 0; i < this.dataGridView1.Columns.Count; i++) 
            { 
                DataGridViewColumn column = this.dataGridView1.Columns[i]; 
                 if (column.Visible) 
                 { 
                   Label  lblChild = new Label(); 
                     lblChild.Name = column.Name ; 
                     lblChild.BackColor = Color.Yellow; 
                     lblChild.AutoSize = true; 
                     lblChild.Left = length + ((int)column.Width / 2) - 10 + 1; 
                     length += column.Width;
                  //   lblChild.Width = column.Width;
                     lblChild.Top = 3;
                     panel.Controls.Add(lblChild); 
                 } 
             }

我这样写代码,不知道问题出在哪里?为什么结果是Label 没显示?只显示红色的panel
------解决思路----------------------
先执行panel.Controls.Add,在设置label的位置
------解决思路----------------------
dataGridView1.Controls.Add(panel);
为啥要把panel加进dataGridView1里去??不怕跟单元格重叠了?
你不如让它和dataGridView1并列,设置dock属性为top,然后它就永远会在dataGridView1的下面
  相关解决方案