編集:この問題は、メソッドを呼び出しているときに関係があります。フォームが表示されるのを待って、フォーム自体のメニューからメソッドを呼び出すと、機能します。ただし、フォームのレンダリングが完了する前に行を表示するように設定すると、機能しません。XtraGridは、レンダリングが終了したときにイベントを発生させますか?
行ハンドルを使用してグリッド内の特定の行を表示することに成功していません。GridViewのMakeRowVisibleメソッドと、ColumnViewのFocusedRowHandleプロパティを設定するだけで、どちらも指定された行を表示することになっています。
注:ColumnView.FocusedRowHandleプロパティを使用して行をフォーカスすると、ビューは指定された行を自動的に画面に表示します。この目的のために、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;
}
}
}