列标题中的文字居中。
this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
向DataTable添加一行新行,并且重新绑定到DataGridView中
DataRow rows = dt.NewRow();
rows["cmrID"] = cmr_ID;
dt.Rows.Add(rows);
DgvoperationRecord.DataSource = dt;
DataGridView单元格内容实时变化的事件
private void DgvoperationRecord_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e){
if (e.Control.GetType().Equals(typeof(DataGridViewTextBoxEditingControl)))//cell为类TextBox时
{
e.CellStyle.BackColor = Color.FromName("window");
DataGridViewTextBoxEditingControl editingControl = e.Control as DataGridViewTextBoxEditingControl;
editingControl.TextChanged += new EventHandler(editingControl_TextChanged);
}
}
//TextBox的TextChanged事件
private void editingControl_TextChanged(object sender, EventArgs e)
{
if (bo == true)
{
string str = DgvoperationRecord.CurrentCell.EditedFormattedValue.ToString();
SpellAndWbCode spell = new SpellAndWbCode();
this.DgvoperationRecord.Rows[DgvoperationRecord.CurrentCell.RowIndex].Cells["ColOperatCode"].Value = spell.GetSpellCode(str);
this.DgvoperationRecord.Rows[DgvoperationRecord.CurrentCell.RowIndex].Cells["ColOperatCode"].ReadOnly = true;
}
}
static bool bo;
private void DgvoperationRecord_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (this.DgvoperationRecord.CurrentCell.ColumnIndex != 4)
bo = false;
else
bo = true;
}
一:单元格内容的操作
//获得单元格内容
DataGridView.CurrentCell.Value
//获得单元格列的Index
DataGridView.CurrentCell.ColumnIndex;
//获得单元格行的Index
DataGridView.CurrentCell.RowIndex;
使用 DataGridView.CurrentCellAddress可以确定单元格所在的行
DataGridView.CurrentCellAddress.X和DataGridView.CurrentCellAddress.Y.这对于避免取消共享行的共享非常有用。
//取消激活的单元格
DataGridView.CurrentCell设为Noting(null)
//设定(0,0)为当期的单元格
DataGridView.CurrentCell= DataGridView[0,0];
注意DataGridView的索引器的参数是:columnIndex.rowIndex或者columnName.rowIndex
//设置DataGridView为只读
DataGridView.ReadOnly=true;
//DataGridView某个单元格不克编辑
DataGridView.Columns[1].ReadOnly=true;
DataGridView[0,0].ReadOnly=true;
//改变列的列名
DataGridView.Columns[0].HeaderCell.Value="第一列";
//改变行的行名
DataGridView.Rows[0].HeaderCell.Value="第一行";
//左上头部单元内容
DataGridView.TopLeftHeaderCell.Value="左上";