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

时间:2016-12-18 16:22:39

标签: c# winforms devexpress devexpress-windows-ui

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

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

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

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

enter image description here

在FormLoad()

之后选择其他控件的代码
protected override void OnShown(EventArgs e)
{
    base.OnShown(e);
    txtPurchaseOrder.BeginInvoke(new Action(() =>
    {
        txtPurchaseOrder.Select();
    }));
}

2 个答案:

答案 0 :(得分:0)

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

}

答案 1 :(得分: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();
    }));
}