c# - C#如何在不同的datagridview中选择两个同名的项目?
问题描述
在此处输入图像描述我有 2 个不同的数据网格,第一个 DG1 是我的项目列表,DG2 是已购买项目的项目队列。我的目标是每当我单击 DG2 中的一个项目时,也会选择具有相同名称或 ID 的 DG1。我想忽略索引,因为我的项目队列与项目列表顺序不同。
private void dgItems_CellClick(object sender, DataGridViewCellEventArgs e)
{
int rowindex = dgItems.Rows[e.RowIndex].Index;
int columnindex = dgItems.Columns[e.ColumnIndex].Index;
dgItemList.Rows[rowindex].Cells[columnindex].Selected = true;
}
解决方案
您需要Value
从两个 datagridviews 单元格中访问属性,例如
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int rowindex = dataGridView1.Rows[e.RowIndex].Index;
int columnindex = dataGridView1.Columns[e.ColumnIndex].Index;
foreach (DataGridViewRow row in dataGridView2.Rows)
row.Selected = false;
var cellValue1 = dataGridView1.Rows[rowindex].Cells[columnindex].Value;
foreach (DataGridViewRow row in dataGridView2.Rows)
{
var cellValue2 = row.Cells[columnindex].Value;
if (cellValue1 == cellValue2)
row.Selected = true;
else
row.Selected = false;
}
}
dataGridView1
是你的 dgItems
,dataGridView2
是你的dgItemList
。
编辑:
如果您的两个 datagridviews 列都在不同的索引上,那么您必须提供列索引以匹配值。
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int rowindex = dataGridView1.Rows[e.RowIndex].Index;
int columnindex = dataGridView1.Columns[1].Index;
foreach (DataGridViewRow row in dataGridView2.Rows)
row.Selected = false;
var cellValue1 = dataGridView1.Rows[rowindex].Cells[1].Value; // 1 <= index of Name column in dgItems
foreach (DataGridViewRow row in dataGridView2.Rows)
{
var cellValue2 = row.Cells[0].Value; // 0 <= index of Name column in dgItemList
if (cellValue1 == cellValue2)
row.Selected = true;
else
row.Selected = false;
}
}
输出:
推荐阅读
- django - Django CMS 反向管理
- woocommerce - 如何以编程方式拆分 WooCommerce 订单?
- algorithm - 获取最大子矩阵的坐标
- c - 如何使用外部调用位于 C 中另一个文件中的函数?
- python - 有没有办法在歌曲之间暂停和恢复我的音乐播放列表?
- c - 已定义但未用于整个项目的变量
- haskell - Haskell As-patterns,将变量绑定到常量
- java - Solr action=split AccessDeniedException 错误
- apache-spark - UDF 的输入类型应该是什么类型的列 - StructType 数组或“null”?
- html - 如何将用户信息填充到编辑表单角度