• c# DataGridView 的一些属性设置,序号,合并头


      this.dataGridView1.DataSource = this.dISASTERBindingSource;
                this.dataGridView1.Location = new System.Drawing.Point(0, 0);
                this.dataGridView1.Name = "dataGridView1" ;
                this.dataGridView1.RowTemplate.Height = 30;
                this.dataGridView1.Size = new System.Drawing.Size(773, 343);
                this.dataGridView1.TabIndex = 0;
                this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler (this.dataGridView1_CellContentClick);
                this.dataGridView1.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler (this.dataGridView1_endEdit);
                this.dataGridView1.AllowUserToResizeColumns = false;
                this.dataGridView1.AllowUserToResizeRows = false;
               
                /*
                 * 设置最后边的背景色
                 * */
                this.dataGridView1.BackgroundColor = System.Drawing.Color.FromArgb(240, 240, 240);
                /**
                *设置表头的高度 、对齐方式、颜色
                **/
                this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode .DisableResizing;
                this.dataGridView1.ColumnHeadersHeight = 40;
              
                this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment .MiddleCenter;
                this.dataGridView1.RowHeadersDefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment .MiddleCenter;
     
                this.dataGridView1.EnableHeadersVisualStyles = false;
                this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.Color.YellowGreen;
                this.dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = System.Drawing.Color.BlueViolet;
               
                /**
                *设置第一列不可编辑
                **/
                this.dataGridView1.Columns[0].ReadOnly = true;
                /**
               *设置表格外边框样式
               **/
                this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
                /**
               *设置表格内部的线条颜色
               **/
                this.dataGridView1.GridColor = System.Drawing.Color.WhiteSmoke;
                /**
               *去掉最后一行
               **/
                this.dataGridView1.AllowUserToAddRows = false;
                /**
               *左侧标题栏隐藏
               **/
                this.dataGridView1.RowHeadersVisible = false;
                /**
               *设置选中单元的背景色和字体颜色
               **/
                this.dataGridView1.DefaultCellStyle.SelectionBackColor = System.Drawing.Color.White;
                this.dataGridView1.DefaultCellStyle.SelectionForeColor = System.Drawing.Color.Black;
                /**
               *竖直方向填充满datagridview
               **/
                this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode .Fill;
     
             
               /**
               *带链接的列
               **/
                private System.Windows.Forms. DataGridViewLinkColumn editColumn;
                this.editColumn.LinkColor = System.Drawing.Color.Blue;
                this.editColumn.UseColumnTextForLinkValue = true;
                this.editColumn.Text = "修改" ;
                this.editColumn.HeaderText = "编辑" ;
                this.editColumn.Name = "editColumn" ;
                this.editColumn.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment .MiddleCenter;
     
       //datagridview前面加序号  直接在方法rowpostpaint中添加dataGridView_RowPostPaint这个方法就可以了  需要把rowheadervisible改为true
            private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
            {
                SetDataGridViewRowXh(e, sender as DataGridView);
            }
            private void SetDataGridViewRowXh(DataGridViewRowPostPaintEventArgs e, DataGridView dataGridView)
            {
                SolidBrush solidBrush = new SolidBrush(dataGridView.RowHeadersDefaultCellStyle.ForeColor);
                int xh = e.RowIndex + 1;
                e.Graphics.DrawString(xh.ToString(CultureInfo.CurrentUICulture), e.InheritedRowStyle.Font, solidBrush, e.RowBounds.Location.X + 5, e.RowBounds.Location.Y + 4);
            }
             
     #region 重绘datagridview表头
                DataGridView dgv = (DataGridView )(sender);
                if (e.RowIndex == -1 && (e.ColumnIndex == 1 || e.ColumnIndex == 2))
                {
     
                    //e.CellStyle.Font = new Font(dataGridView1.DefaultCellStyle.Font, FontStyle.Bold);
                    //e.CellStyle.WrapMode = DataGridViewTriState.True;
                    if (e.ColumnIndex == 1)
                    {
                        top = e.CellBounds.Top;
                        left = e.CellBounds.Left;
                        height = e.CellBounds.Height;
                        width1 = e.CellBounds.Width;
                    }
     
     
                    int width2 = this .dataGridView1.Columns[2].Width;
     
                    Rectangle rect = new Rectangle(left, top, width1 + width2, e.CellBounds.Height);
                    using (Brush backColorBrush = new SolidBrush(e.CellStyle.BackColor))
                    {
                        //抹去原来的cell背景
                        e.Graphics.FillRectangle(backColorBrush, rect);
                    }
     
                    using (Pen gridLinePen = new Pen(dgv.GridColor))
                    {
                        //画表头的左、上、右、下边线
                        //e.Graphics.DrawLine(gridLinePen, left, top , left, top + height);
                        e.Graphics.DrawLine(gridLinePen, left, top , left + width1 + width2-1, top );
                        e.Graphics.DrawLine(gridLinePen, left + width1 + width2 - 1, top, left + width1 + width2 - 1, top + height-2);
                        e.Graphics.DrawLine( new Pen (Color.FromArgb(160, 160, 160)), left, top + height - 1, left + width1 + width2-1, top + height - 1);
                        //计算绘制字符串的位置
                        string columnValue = "编辑" ;
                        SizeF sf = e.Graphics.MeasureString(columnValue, e.CellStyle.Font);
                        float lstr = (width1 + width2 - sf.Width) / 2;
                        float rstr = (height - sf.Height) / 2;
     
                        //画出文本框
                        if (columnValue != "" )
                        {
                            e.Graphics.DrawString(columnValue, e.CellStyle.Font,
                                                       new SolidBrush (e.CellStyle.ForeColor),
                                                         left + lstr,
                                                         top + rstr,
                                                         StringFormat.GenericDefault);
                        }
     
                    }
                    e.Handled = true;
     
     
                }
                #endregion
  • 相关阅读:
    测试方案写作要点
    [loadrunner]通过检查点判定事务是否成功
    【面试】如何进行自我介绍
    【nginx网站性能优化篇(1)】gzip压缩与expire浏览器缓存
    【nginx运维基础(6)】Nginx的Rewrite语法详解
    【PHPsocket编程专题(实战篇①)】php-socket通信演示
    【Linux高频命令专题(22)】gzip
    【nginx运维基础(5)】Nginx的location攻略
    【Linux高频命令专题(21)】df
    【PHPsocket编程专题(理论篇)】初步理解TCP/IP、Http、Socket.md
  • 原文地址:https://www.cnblogs.com/yanjinliang/p/5646829.html
Copyright © 2020-2023  润新知