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 }

浙公网安备 33010602011771号