Как правило, используемый вами подход не требует написания дополнительного кода.XtraGrid не сбрасывает свой FocusedRow, если вы открываете форму двойным щелчком строки сетки.Итак, я бы посоветовал вам определить причину такого поведения.Это можно сделать, используя следующий подход:
1) обработать событие FridsedRowChanged GridView и установить в нем точку останова.
2) воспроизвести проблему и проверить, какой код заставляет gridView фокусироватьсяпервая строка.
Это должно дать представление о том, почему это происходит.
Кроме того, я бы посоветовал вам рассмотреть Как создать PopupForm для редактирования строк в GridView иавтоматически создавать редакторы на основе редакторов столбцов. пример, где реализована необходимая функциональность.
Мне кажется, я знаю причину этой проблемы.Это происходит потому, что вы меняете свойство RowFilter объекта DataView.Я думаю, вы хотите, чтобы ваши редакторы указывали на запись, на которую нажали.Лучшее решение - не фильтровать DataView, а назначить BindingContext, как это сделано в примере выше.Вот код из него:
public EditForm(Point location, GridColumnCollection columns, object dataSource, BindingContext context)
: this() {
StartPosition = FormStartPosition.Manual;
Location = location;
BindingContext = context; // <<<<<<
allowTrackValueChanges = false;
this.dataSource = dataSource;
...
}