Я создаю экран оплаты с помощью C# winform, ODEMEID в Gridview1 регистрируется в поле ODEMEBELGETID в записи GridView2.
Когда я вспоминаю запись, первое значение ODEMEID, которое я выбираю в GridView1 не проверяется автоматически в GridView2, но если я выбираю вторую запись, проверяется соответствующая запись в Grid2, затем, если я выбираю первую запись, проверяется Grid2.
Когда форма загружается, первый ODEMEID автоматически переносится в память. Когда записи загружаются в форму, если значение ODEMEID равно -1, моя проблема решена.
private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
try
{
object odemeIdValue = gridView1.GetFocusedRowCellValue("ODEMEID");
if (odemeIdValue != null && odemeIdValue != DBNull.Value)
{
int odemeID = Convert.ToInt32(odemeIdValue);
SelectAndFocusGridView2Rows(odemeID);
}
else
{
DeselectGridView2Rows();
}
}
catch (Exception ex)
{
Mesajlar.Hata(ex);
}
}
private void SelectAndFocusGridView2Rows(int odemeID)
{
//DeselectGridView2Rows();
for (int i = 0; i < gridView2.RowCount; i++)
{
var rowValue = (int)gridView2.GetRowCellValue(i, "ODEMEBELGEID");
if (rowValue == odemeID)
{
gridView2.SelectRow(i);
gridView2.FocusedRowHandle = i;
}
}
}
private void DeselectGridView2Rows()
{
for (int i = 0; i < gridView2.RowCount; i++)
{
gridView2.UnselectRow(i);
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... s-problems