public DataGridViewFrm() { InitializeComponent(); this.dgvShow.CellFormatting += new DataGridViewCellFormattingEventHandler(dgvShow_CellFormatting); } private void btnPrep_Click(object sender, EventArgs e) { //myBind.Position += 1; //选中的单元格的数据,不是单元行。 //MessageBox.Show(dgvShow.CurrentCell.Value.ToString()); //列索引,从0开始 //MessageBox.Show(dgvShow.CurrentCell.ColumnIndex.ToString()); //行索引 //MessageBox.Show(dgvShow.CurrentCell.RowIndex.ToString()); //坐标 //MessageBox.Show(dgvShow.CurrentCellAddress.X.ToString()); //MessageBox.Show(dgvShow.CurrentCellAddress.Y.ToString()); //设置选定行 //dgvShow.CurrentCell = dgvShow[1, 1]; //向下遍历 //int row = dgvShow.CurrentRow.Index + 1; //if (row > dgvShow.RowCount - 1) // row = 0; //dgvShow.CurrentCell = dgvShow[0, row]; //EditMode,设置单元格不可处于编辑状态 //dgvShow.EditMode = DataGridViewEditMode.EditProgrammatically; //取消新增行 //dgvShow.AllowUserToAddRows = false; //删除选定的行 //dgvShow.Rows.RemoveAt(dgvShow.CurrentRow.Index); //删除选定的多行,选中行是通过选中每行的第一列 //foreach (DataGridViewRow row in dgvShow.SelectedRows) //{ // if (!row.IsNewRow) // { // dgvShow.Rows.Remove(row); // } //} //设置列宽不可拖动 //dgvShow.AllowUserToResizeColumns = false; //dgvShow.Columns[0].Width = 300; } //列数据格式化,将密码列的字符串隐藏 private void dgvShow_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == 3) { if (e.Value != null && e.Value.ToString().Length > 0) { e.Value = new string('$', e.Value.ToString().Length); } } } /// <summary> /// 单元格绘制之后,把索引显示 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgvShow_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { //e.RowBounds.Location.Y当前控件位置 Rectangle rectangle = new Rectangle(e.RowBounds.Location.X + 100,//用此法取得当前行的画板 e.RowBounds.Location.Y, this.dgvShow.RowHeadersWidth - 10, e.RowBounds.Height); //TextRenderer.DrawText()方法在Graphics对象上画文本 TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),//文本内容 this.dgvShow.RowHeadersDefaultCellStyle.Font,//字体 rectangle,//矩形 //this.dataGridView1.RowHeadersDefaultCellStyle.ForeColor, Color.Red,//字体颜色 TextFormatFlags.VerticalCenter | TextFormatFlags.Right);//对齐方式 } private void dgvShow_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { DataGridView dgv = (DataGridView)sender; //是否可以进行编辑的条件检查 if (dgv.Columns[e.ColumnIndex].Name == "Column1" && !(bool)dgv["Column2", e.RowIndex].Value) { e.Cancel = true; } }