Как предотвратить автофокус панели поиска в управлении сеткой devexpress

В моей форме есть только элемент управления сеткой и полоса ленты. Я хочу автоматически фокусироваться на первой ячейке представления сетки при загрузке формы.

Проблема в том, что когда форма загружается, она автоматически фокусируется на панели поиска сетки, а не на ячейке сетки.

Я пробовал так, но не работает. Помогите, всем спасибо.

    private void gcStockDelivery_Load(object sender, EventArgs e)
    {
        BeginInvoke(new MethodInvoker(() =>
        {
            gvStockDelivery.FocusedColumn = gcBarCode;
            gvStockDelivery.ShowEditor();
        }));
    }

введите здесь описание изображения

Код для выбора другого элемента управления после FormLoad()

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    txtPurchaseOrder.BeginInvoke(new Action(() =>
    {
        txtPurchaseOrder.Select();
    }));
}

person Triple K    schedule 18.12.2016    source источник
comment
Я нашел способ сосредоточиться только на другом элементе управления при загрузке формы, а не на самой ячейке   -  person Triple K    schedule 19.12.2016
comment
Можете ли вы показать нам код, в котором вы получили фокус другого элемента управления?   -  person jambonick    schedule 22.12.2016
comment
@jambonick Я добавил, как выбрать другой элемент управления после FormLoad().   -  person Triple K    schedule 05.01.2017


Ответы (2)


Панель поиска всегда находится в фокусе, когда она видна при загрузке формы, поэтому вам нужно изменить фокус вручную. Вы показали нам код, чтобы изменить другой элемент управления. А что, если вы выбрали саму сетку в качестве элемента управления, а затем настроили событие GotFocus, которое вы только что выбрали? Вы можете попробовать этот код

Это ваш первый заказ:

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    yourGridControl.BeginInvoke(new Action(() =>
    {
        yourGridControl.Select();
    }));
}

Это ваш второй обычай:

private void yourGridControl_GotFocus(Object sender, EventArgs e) {
    GridView gridView1 = Me.ViewCollection.Item(0)
    gridView1.FocusedColumn = gridView1.VisibleColumns(0)
    gridView1.FocusedRowHandle = 0

}
person jambonick    schedule 09.01.2017

Извините за поздний ответ. У меня есть мнение, что фокус XtraGrid AutoFilterRow

Оно работает.

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    gcDamageItems.BeginInvoke(new Action(() =>
    {
        gcDamageItems.ForceInitialize();
        gvDamageItems.MoveFirst();
        gvDamageItems.FocusedColumn = gvDamageItems.VisibleColumns[0];
        gvDamageItems.ShowEditor();
    }));
}
person Triple K    schedule 07.03.2017