C# DataGridView

 一、使用总结

      1.改变某一列标题颜色

          dgv.EnableHeadersVisualStyles = false;

          dgv.Columns[i].HeaderCell.Style.BackColor = Color.Red;         

二、代码举例

 

 

   private void InitDataGridView()
        {

            // Create an unbound DataGridView by declaring a column count.
            dataGridView1.ColumnCount = 3;
            dataGridView1.ColumnHeadersVisible = true;
            dataGridView1.AllowUserToAddRows = false;
            dataGridView1.AllowUserToDeleteRows = false;
            dataGridView1.AllowUserToOrderColumns = false;      
            dataGridView1.MultiSelect = false;
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.ReadOnly = true;

            //数据居中
            dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            //标题居中
            dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

            //设置标题高度
            dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
            dataGridView1.ColumnHeadersHeight = 40;

            // Set the column header style.
            DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();

            columnHeaderStyle.BackColor = Color.Beige;
            columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Regular);
            dataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle;

            // Set the column header names.
            dataGridView1.Columns[0].Name = "C1";
            dataGridView1.Columns[0].Width = 40;
            dataGridView1.Columns[1].Name = "C2";
            dataGridView1.Columns[1].Width = 90;
            dataGridView1.Columns[2].Name = "C3";
            dataGridView1.Columns[2].Width = 60;


        }
        private void AddDataGridViewData()
        {
            for (int i = 0; i < 3; i++)
            {
                int index = this.dataGridView1.Rows.Add();
                this.dataGridView1.Rows[index].Cells[0].Value = i.ToString() + "1";
                this.dataGridView1.Rows[index].Cells[1].Value = i.ToString() + "2";
                this.dataGridView1.Rows[index].Cells[2].Value = i.ToString() + "3";
            }           

        }

        private string GetSelectedValue()
        {
            int index= dataGridView1.CurrentRow.Index;
            return dataGridView1.Rows[index].Cells["C2"].Value.ToString();           
            
        }

        //清除DataGridView数据
        private void DataGridViewClear()
        {
            
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows.Remove(dataGridView1.Rows[i]);
                i--;
            }
        }

        //右键显示菜单
        private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (e.RowIndex >= 0)
                {
                    //若行已是选中状态就不再进行设置
                    if (dataGridView1.Rows[e.RowIndex].Selected == false)
                    {
                        dataGridView1.ClearSelection();
                        dataGridView1.Rows[e.RowIndex].Selected = true;
                    }
                    //只选中一行时设置活动单元格
                    if (dataGridView1.SelectedRows.Count == 1)
                    {
                        dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
                    }
                    //弹出操作菜单
                    contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
                }
            }
        }

 

  public void InitDataGridView(DataGridView dgv)
        {
            // Create an unbound DataGridView by declaring a column count.
            dgv.ColumnCount = 10;
            dgv.ColumnHeadersVisible = true;
            dgv.RowHeadersVisible = false;
            dgv.AllowUserToAddRows = false;
            dgv.AllowUserToDeleteRows = false;
            dgv.AllowUserToOrderColumns = false;
            dgv.MultiSelect = false;
            //dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgv.ReadOnly = false;


            // Set the column header names.

            //添加一列checkbox,会多一列空白
            DataGridViewCheckBoxColumn ChCol0 = new DataGridViewCheckBoxColumn();
            ChCol0.Name = "Used";
            ChCol0.Width = 40;
            ChCol0.TrueValue = "1";
            ChCol0.FalseValue = "0";
            dgv.Columns.Insert(0, ChCol0);

            dgv.Columns[1].Name = "Addr";
            dgv.Columns[1].Width = 40;

            dgv.Columns[2].Name = "SubAddr";
            dgv.Columns[2].Width = 60;

            //dgv.Columns[3].Name = "Type";
            //dgv.Columns[3].Width = 80;
            DataGridViewComboBoxColumn cbCol3 = new DataGridViewComboBoxColumn();
            cbCol3.Items.Add("Single");
            cbCol3.Items.Add("Muti");
            cbCol3.Name = "Type";
            cbCol3.Width = 80;
            dgv.Columns.Insert(3, cbCol3);

            dgv.Columns[4].Name = "Tilts";
            dgv.Columns[4].Width = 100;

            dgv.Columns[5].Name = "Suffix";
            dgv.Columns[5].Width = 100;

            dgv.Columns[6].Name = "Calibrate";
            dgv.Columns[6].Width = 80;
            dgv.Columns[6].ReadOnly = true;


            dgv.Columns[7].Name = "NG";
            dgv.Columns[7].Width = 60;
            dgv.Columns[7].ReadOnly = true;

            dgv.Columns[8].Name = "SetTilt";
            dgv.Columns[8].Width = 60;
            dgv.Columns[8].ReadOnly = true;

            dgv.Columns[9].Name = "NG";
            dgv.Columns[9].Width = 60;
            dgv.Columns[9].ReadOnly = true;

            //多一列空白的删除
            dgv.Columns.RemoveAt(10);
            dgv.Columns.RemoveAt(10);

            
            //数据居中
            dgv.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;          

            //设置标题高度
            dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
            dgv.ColumnHeadersHeight = 30;

            // Set the column header style.
            DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();

            columnHeaderStyle.BackColor = Color.Beige;
            //columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Regular);
            dgv.ColumnHeadersDefaultCellStyle = columnHeaderStyle;

            //指定列的颜色
            DataGridViewCellStyle column67Style = new DataGridViewCellStyle();
            column67Style.BackColor = Color.DeepSkyBlue;
            dgv.Columns[6].DefaultCellStyle = column67Style;
            dgv.Columns[7].DefaultCellStyle = column67Style;
            DataGridViewCellStyle column89Style = new DataGridViewCellStyle();
            column89Style.BackColor = Color.LightSeaGreen;
            dgv.Columns[8].DefaultCellStyle = column89Style;
            dgv.Columns[9].DefaultCellStyle = column89Style;
            //去除标题排序箭头
            for (int i = 0; i < 10; i++)
            {
                dgv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
            }

            //标题居中
            dgv.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;


        }

        public void AddDataToDataGridView(DataGridView dgv)
        {
            int index = dgv.Rows.Add();
            dgv.Rows[index].Cells[0].Value = "1";
            dgv.Rows[index].Cells[1].Value = "1";
            dgv.Rows[index].Cells[2].Value = "1";
            dgv.Rows[index].Cells[3].Value = "Single";
            dgv.Rows[index].Cells[4].Value = "2 4 6";
            dgv.Rows[index].Cells[5].Value = "-YUI";
            

        }

 

单元格内容显示不同的颜色

  

  private void dgvTask_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (e.RowIndex < 0)
            {
                return;
            }
            DataGridViewRow dgr = dgvTask.Rows[e.RowIndex];
            if(e.ColumnIndex == 3)
            {
                if (dgr.Cells[3].Value.ToString() == TaskStatus.execute)
                {
                    e.CellStyle.ForeColor = Color.Green;//将前景色设置为红色,即字体颜色设置为红色                         e.CellStyle.BackColor = Color.Green;//将背景色设置为绿色,即列的颜色设置为红色  
                   // e.CellStyle.BackColor = Color.Green;//将背景色设置为绿色,即列的颜色设置为红色 

                }
            }

        }

 e.CellStyle.ForeColor = ColorTranslator.FromHtml("#B3EE3A"); 

转载于:https://www.cnblogs.com/ike_li/p/8073345.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开发环境为vs2012 C#源码及完全样例 此版本为2012.2.24日更新版本,更新内容为 * 最后修改时间:2012.2.24 增加了汇总信息的自定义控制属性,参见功能描述12 * 2012.2.23 修改了过多列时父标题不显示的问题,重新写了算法,修改了标题头重叠及不能换行的问题,参见说明11. 总功能列举如下: /**************************************************************************************************** * Copyright (C) 2012 明振居士 版权没有,任意拷贝及使用,但对使用造成的任何后果不负任何责任,互相开源影响,共同进步 * 文 件 名:DataGridViewEx.cs * 创 建 人:明振居士 * Email:[email protected] qq:342155124 * 创建时间:2010-06-01 * 最后修改时间:2012.2.24 增加了汇总信息的自定义控制属性,参见功能描述12 * 2012.2.23 修改了过多列时父标题不显示的问题,重新写了算法,修改了标题头重叠及不能换行的问题,参见说明11. * 2012-1-19 增加第10条所示的功能;修改了列头超过26列的错误,导出excel为数组方式,速度更快,导出的单元格设置为文本格式。 * 标 题:用户自定义的DataGridView控件 * 功能描述:扩展DataGridView控件功能 * 扩展功能: * 1、搜索Search(); 有两个同明方法,参数不同 F3为快捷键继续向下搜索 * 2、用TreeView HeadSource 来设置复杂的标题样式,如果某个节点对应的显示列隐藏,请将该节点Tag设置为hide,隐藏列的排列位置与绑定数据元列位置对应,树叶节点的顺序需要与结果集的列顺序一致 * 3、通过反射导出Excel,无需引用com组件,方法ExportExcel() ,不受列数的限制,表头同样可以导出,AutoFit属性设置导出excel后是否自动调整单元格宽度 * 导出内容支持自定义的:Title List Header List Footer,支持在设计时值的设定,窗口关闭时Excel资源自动彻底释放 * 4、可以自己任意设定那些列显示及不显示,通过调用方法SetColumnVisible()实现。 * 5、设置列标题SetHeader(),设置列永远可见AlwaysShowCols(),设置列暂时不可见HideCols() * 注意,当使用了TreeView作为复杂Header时,不要使用本方法,Header显示的内容根据treeview内容而显示 * 6、列宽度及顺序的保存SaveGridView(),加载LoadGridView() * 7、支持所见即所得的打印功能,举例如下 * private void button5_Click(object sender, EventArgs e) { DGVPrinter printer = new DGVPrinter(); printer.PrintPreviewDataGridView(DataGridViewEx1); } * 8、自定义合并行与列,行合并用 MergeRowColumn 属性,列合并用MergeColumnNames属性,都可以定义多个列 * 9、行标号的设置 bool ShowRowNumber; * 10、增加最后一行的汇总行,支持列的聚合函数,参见http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.[removed]v=VS.100).aspx * 假设对id列显示“合计”字符,avgPrice进行平均值,total列显示合计,则对ComputeColumns属性增加三行内容:id,合计:;avgPrice,Avg(avgPrice);total,Sum(total) * 如果需要对值进行格式控制,请实现beforeShow事件 * 增加了导出和打印对应的支持,所见即所得的对齐方应用于式导出及打印。 * 11、列标题头自动换行,默认设置为每个列标题头行高为22,如果设置的字体更大,将自动进行计算。如果需要多行显示,请根据需要调节ColumnHeaderHeight属性值, * 其估算方法为预计的标题头层数乘以22,或层数乘以设置的字体高度。 * 12、针对第10条功能,增加汇总信息的自定义控制属性,汇总字体SummaryFont,汇总字体颜色SummaryFontColor,汇总背景色SummaryBGColor,边框与整个表格边框一致 ****************************************************************************************************/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值