РЕДАКТИРОВАТЬ: проблема связана с тем, когда я вызываю метод. Если я жду отображения формы и вызываю метод из меню самой формы, он работает. Но если я установлю, что строка будет отображаться до того, как форма завершит рендеринг, это не сработает. Вызывает ли XtraGrid событие после завершения рендеринга?
У меня не получается сделать видимой определенную строку в сетке, используя ее дескриптор строки. Я пробовал как метод MakeRowVisible GridView, так и просто установку свойства FocusedRowHandle ColumnView, оба из которых должны отображать указанную строку.
Примечание: при фокусировке строки с помощью свойства ColumnView.FocusedRowHandle View автоматически делает указанную строку видимой на экране. Для этого используется метод MakeRowVisible. Таким образом, вам не нужно использовать метод MakeRowVisible, если вам нужно сфокусировать целевую строку. Просто назначьте нужный дескриптор строки свойству ColumnView.FocusedRowHandle. http://documentation.devexpress.com/#WindowsForms/DevExpressXtraGridViewsGridGridView_MakeRowVisibletopic
Я должен упустить что-то основное. Спасибо за помощь.
public void SetVisibleRow(int customerid)
{
DevExpress.XtraGrid.Views.Base.ColumnView vw;
vw = (DevExpress.XtraGrid.Views.Base.ColumnView) MyGrid.DefaultView;
for ( int i = 0; i < vw.DataRowCount; i++)
{
if ((int)vw.GetRowCellValue(i, "custid") == customerid)
{
// DevExpress.XtraGrid.Views.Grid.GridView gv;
// gv = (DevExpress.XtraGrid.Views.Grid.GridView) MyGrid.DefaultView;
// gv.MakeRowVisible(i,false);
vw.FocusedRowHandle = i;
break;
}
}
}