如何防止devexpress网格控件中查找面板的自动对焦

How to prevent auto focus of find panel in devexpress grid control

我的表单只有网格控件和功能区栏。我希望在加载表单时自动聚焦到网格视图的第一个单元格。

问题是:加载表单时,它会自动聚焦在网格的查找面板而不是网格单元格中。

我这样试过,但不行。帮忙,谢谢大家。

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

代码到 select FormLoad() 之后的其他控件

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

查找面板在表单加载时可见时始终处于焦点状态,因此您必须手动更改焦点。您向我们展示了更改另一个控件的代码。如果您选择网格本身作为控件,然后自定义您刚刚选择的 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

}

抱歉回复晚了。我有解决方案 XtraGrid AutoFilterRow focusing

有效。

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