C#限制当前单元格的值为指定值时禁止编辑的方法
下面为限制WINFORM的C#限制DATAGRIDVIEW某一 单元格特定值不允许修改的代码:
using System;
using System.Windows.Forms;
public class TestHdhComForm : Form
{
private DataGridView dgvHdhCms;
public TestHdhComForm()
{
// 初始化DataGridView
dgvHdhCms = new DataGridView();
dgvHdhCms.Dock = DockStyle.Fill;
dgvHdhCms.AllowUserToAddRows = false;
// 添加测试列和数据
var column = new DataGridViewTextBoxColumn();
column.Name = "Column1";
column.HeaderText = "测试列";
dgvHdhCms.Columns.Add(column);
dgvHdhCms.Rows.Add("普通值");
dgvHdhCms.Rows.Add("客户自备");
// 绑定事件
dgvHdhCms.EditingControlShowing += dgvHdhCms_EditingControlShowing;
this.Controls.Add(dgvHdhCms);
}
private void dgvHdhCms_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
// 获取当前单元格
var cell = dgvHdhCms.CurrentCell;
// 检查原始值是否为"客户自备"
if (cell.Value != null && cell.Value.ToString() == "客户自备")
{
// 取消编辑
dgvHdhCms.EndEdit();
MessageBox.Show("该单元格不允许编辑", "提示",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}