DataGridView绘制行号

  在MS DataGridView行的最前面显示行号,类似于Excel中的行号一样。实际上就是在DataGridView.RowPostPaint事件中重绘文本。

  

 1         //在行的最前面处,手工绘制显示行号
 2         private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
 3         {
 4             Rectangle rectangle = new Rectangle(e.RowBounds.Location.X,
 5                             e.RowBounds.Location.Y,
 6                             dataGridView1.RowHeadersWidth - 4,
 7                             e.RowBounds.Height);
 8 
 9             TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
10                 dataGridView1.RowHeadersDefaultCellStyle.Font,
11                 rectangle,
12                 dataGridView1.RowHeadersDefaultCellStyle.ForeColor,
13                 TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
14         }

    

   下面的代码实现DataGridView.Column的数据绑定,设置的是列的DataPropertyName属性

 1         private void mySql_FillMOColorSize(string AMONo)
 2         {
 3             string vSql = string.Format(cSql_FillMOColorSize,AMONo,this.cmbSizeName.Text.Trim());
 4             TSunVKBHelper.mmFillDataTable(this.m_tblMOColorSize,vSql) ; 
 5 
 6             this.dataGridView1.SuspendLayout();
 7             try
 8             {
 9                 this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
10                 this.dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
11                 this.gcMONo.DataPropertyName = "MONo";
12                 this.gcColorName.DataPropertyName = "ColorName";
13                 this.gcSizename.DataPropertyName = "SizeName";
14                 this.gcQty.DataPropertyName = "Qty";
15                 this.gcColorNo.DataPropertyName = "ColorNo";
16                 this.dataGridView1.AutoGenerateColumns = false;  //[BugHere][MustAdd]
17                 this.dataGridView1.DataSource = this.m_tblMOColorSize;
18             }
19             finally
20             {
21                 this.dataGridView1.ResumeLayout();
22             }
23             //this.dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
24         }
posted @ 2012-09-03 12:56  C#老头子  Views(507)  Comments(0)    收藏  举报