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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM