c# - 选择多行时如何更改给定列中单元格的值?
问题描述
我希望能够在数据表中选择多行,然后如果它们被选中,则更改单元格中的值。我的代码是:
private void btnSetToReceived_Click(object sender, EventArgs e)
{
SetToReceived();
}
private void SetToReceived()
{
this.dgvPod.CurrentCell.Value = "Yes";
}
private void dgvPod_KeyDown(object sender, KeyEventArgs e)
{
e.Handled = true;
dgvPod.BeginEdit(true);
SetToReceived();
}
解决方案
我从你的问题中得到的是,你想选择多个单元格,然后开始输入,你希望所有选定的单元格值都会改变:
为此,您可以处理EditingControlShowing
事件并获取TextBox
编辑控件并处理其TextChanged
事件并更新所选单元格的文本。例如:
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.ColumnCount = 4;
dataGridView1.RowCount = 4;
TextBox txt = null;
dataGridView1.EditingControlShowing += (s1, e1) =>
{
if (dataGridView1.EditingControl is TextBox)
{
if (txt == null)
{
txt = (TextBox)dataGridView1.EditingControl;
txt.TextChanged += (s2, e2) =>
{
foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
cell.Value = txt.Text;
};
}
}
};
}
该代码不会检查选定的单元格是否都在同一列中,但是它在示例中显示了如何在键入的同时获取文本以及如何设置其他选定单元格的值。
推荐阅读
- java - 如何将凌空响应发送到 Firebase 数据库
- javascript - 将数组中的数据插入饼图 (chart.js)
- javascript - 在 HTML5 画布中加载 TIF/TIFF 并避免下载
- c++ - 如何使用索引缓冲区绘制两个三角形?
- winforms - 如何在 WinForms 中制作文件下载进度条?
- python - python:如何将数组转换为矩阵?错误:AttributeError:'matrix'对象没有属性'adjugate'
- docker - 将 Traefik StripPrefix 中间件添加到 docker-compose 标签会导致 504
- javascript - 使用什么 Azure 服务在特定时间向 Webhook 端点发送每日 POST 请求
- c# - 反序列化 XML 对象。字段未初始化
- gatsby - 为什么教程第三部分不起作用?