C# gridEX行选择在按钮上更改单击不可见

C# gridEX行选择在按钮上更改单击不可见,c#,janus,gridex,C#,Janus,Gridex,我有一个gridEX组件和上/下按钮,用于相应地更改所选行。如果我从表中选择某一行,则“向上”按钮应选择先前选定行上方的行 private void btnUp_Click(object sender, EventArgs e) { //TODO int rowIndex = gridEX.Row; if (rowIndex > 0) { GridEXRow newSelectedRow =

我有一个gridEX组件和上/下按钮,用于相应地更改所选行。如果我从表中选择某一行,则“向上”按钮应选择先前选定行上方的行

private void btnUp_Click(object sender, EventArgs e)
    {
        //TODO
        int rowIndex = gridEX.Row;

        if (rowIndex > 0)
        {
            GridEXRow newSelectedRow = gridEX.GetRow(rowIndex-1);
            gridEX.SelectedItems.Clear();
            gridEX.MoveTo(newSelectedRow);   
        }
    }
上面的代码选择了右边的行,但是选择不可见,就像我单击该行一样。
可能是什么问题?

单击向上/向下按钮会导致网格失去焦点。这就是所选行未高亮显示的原因。在更改行之前,需要将焦点设置回网格。大概是这样的:

        private void btnUp_Click(object sender, EventArgs e)
        {
            int rowIndex = gridEX1.CurrentRow.RowIndex - 1;
            selectRow(rowIndex);
        }

        private void btnDown_Click(object sender, EventArgs e)
        {
            int rowIndex = gridEX1.CurrentRow.RowIndex + 1;
            selectRow(rowIndex);
        }

        private void selectRow(int rowIndex)
        {
            gridEX1.Focus(); //set the focus back on your grid here
            if (rowIndex >= 0 && rowIndex < (gridEX1.RowCount))
            {               
                GridEXRow newSelectedRow = gridEX1.GetRow(rowIndex);
                gridEX1.MoveToRowIndex(rowIndex);               
            }
        }
private void btnUp\u单击(对象发送方,事件参数e)
{
int rowIndex=gridEX1.CurrentRow.rowIndex-1;
选择行(行索引);
}
私有void btnDown\u单击(对象发送者,事件参数e)
{
int rowIndex=gridEX1.CurrentRow.rowIndex+1;
选择行(行索引);
}
私有void selectRow(int rowIndex)
{
gridEX1.Focus();//在此处将焦点设置回网格
如果(rowIndex>=0&&rowIndex<(gridEX1.RowCount))
{               
GridEXRow newSelectedRow=gridEX1.GetRow(rowIndex);
gridEX1.MoveToRowIndex(行索引);
}
}