我的表单只有网格控件和功能区栏。我希望在加载表单时自动焦点到网格视图的第一个单元格。
问题是:当加载表单时,它会自动聚焦在网格的查找面板而不是网格单元格中。
我试过这样但不行。帮助,谢谢大家。
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();
}));
}
答案 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();
}));
}