博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DataGridView 设定单元格只读

Posted on 2010-04-22 09:35  一刻  阅读(313)  评论(0)    收藏  举报
② DataGridView 设定单元格只读:
  1) 使用 ReadOnly 属性
  ⇒ 如果希望,DataGridView 内所有单元格都不可编辑, 那么只要:
  
  [C#]//设置 DataGridView1 为只读
  DataGridView1.ReadOnly = true
  此时,用户的新增行操作和删除行操作也被屏蔽了。
  ⇒ 如果希望,DataGridView 内某个单元格不可编辑, 那么只要:
  [C#]//设置 DataGridView1 的第2列整列单元格为只读
  DataGridView1.Columns[1].ReadOnly = true
  //设置 DataGridView1 的第3行整行单元格为只读
  DataGridView1.Rows[2].ReadOnly = true
  //设置 DataGridView1 的[0,0]单元格为只读
  DataGridView1[0, 0].ReadOnly = true
  2) 使用 EditMode 属性
  DataGridView.EditMode 属性被设置为 DataGridViewEditMode.EditProgrammatically 时,用户就不能手动编辑单元格的内容了。但是可以通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。
  [C#]
  DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
  3) 根据条件设定单元格的不可编辑状态
  当一个一个的通过单元格坐标设定单元格 ReadOnly 属性的方法太麻烦的时候,你可以通过 CellBeginEdit 事件来取消单元格的编辑。
  [C#]// CellBeginEdit 事件处理方法private void DataGridView1_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 }
  }