У меня есть 3 DataGridViews.С DataGridView1 и DataGridView2 вы можете выбрать строки.После нажатия кнопки сравниваются строки из DataGridView1 и DataGridView2, и каждая строка, имеющая одинаковые значения, задается в DataGridView3.
То, что я хочу, это когда вы выбираете строку в DataGridView3, те же строки выбираются в DataGridView1и DataGridView2.
Код, который у меня есть, а также работает:
private int ShowSelected(int selectedId, Boolean sBool)
{
DataTable dt = DataGridView1.DataSource;
if(!sBool)
currentGrid = DataGridView1;
int indexCounter = 0;
foreach (DataRow dr in dt.Rows)
{
int cellIdDgv = Convert.ToInt32(dr["cellId"]);
if (selectedId == cellIdDgv)
{
if (sBool)
{
DataGridView1.Rows[indexCounter].Selected = true;
DataGridView1.FirstDisplayedCell = DataGridView1.Rows[indexCounter].Cells[0];
}
else
{
DataGridView2.Rows[indexCounter].Selected = true;
DataGridView2.FirstDisplayedCell = DataGridView2.Rows[indexCounter].Cells[0];
}
}
indexCounter++;
}
}
Но мне нужно что-то вроде этого, поэтому вам не нужно перебирать всю Grid:
string selection = "cellId = " + selectedId;
DataRow[] drResult = dt.Select(selection);
int rowId = drResult.RowId;
if (sBool)
{
DataGridView1.Rows[rowId].Selected = true;
DataGridView1.FirstDisplayedCell = DataGridView1.Rows[rowId].Cells[0];
}
else
{
DataGridView2.Rows[rowId].Selected = true;
DataGridView2.FirstDisplayedCell = DataGridView2.Rows[rowId].Cells[0];
}
Как я могу сделать эту работу?