键盘回车(可以衍生用户操作任意键盘)

 /// <summary>
        /// 列表的回车事件,实现光标跳转
        /// </summary> 
        /// <param name="e"></param>
        private void DgvKeyPress(KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Enter)
            {
                //避免乱按回车键 造成报错
                if (dgvRecordList.Grid.ActiveCell == null)
                {
                    return;
                }
                if (StatCode == InvenMgrClassify.YP.GetHashCode().ToString())
                {
                    DrugInout drug = dgvRecordList.Grid.ActiveRow.ListObject as DrugInout;
                    List<DrugInout> drugs = dgvRecordList.DataSource as List<DrugInout>;
                    if (drug == null || drugs == null)
                    {
                        return;
                    }
                    //药品信息
                    if (dgvRecordList.Grid.ActiveCell.Column.Key == nameof(DrugInout.DgInfo))
                    {
                        DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index, nameof(DrugInout.DioActualAmt), true, false);
                    }
                    //盘点数
                    else if (dgvRecordList.Grid.ActiveCell.Column.Key == nameof(DrugInout.DioActualAmt))
                    {
                        if (drug.DgId == null)
                        {
                            return;
                        }
                        //如果是最后一行
                        if (dgvRecordList.Grid.ActiveRow.Index == drugs.Count - 1)
                        {
                            DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index, nameof(DrugOrdDtl.DgInfo), false, false);
                            AddGridRow();
                            dgvRecordList.Grid.PerformAction(UltraGridAction.EnterEditModeAndDropdown, false, false);
                            dgvRecordList.GridRefresh();
                        }
                        //如果不是最后一行,跳转到下一行
                        else
                        {
                            DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index + 1, nameof(DrugOrdDtl.DgInfo), true, false);
                        }
                    }
                }
                else if (StatCode == InvenMgrClassify.WC.GetHashCode().ToString())
                {
                    EisaiInout drug = dgvRecordList.Grid.ActiveRow.ListObject as EisaiInout;
                    List<EisaiInout> drugs = dgvRecordList.DataSource as List<EisaiInout>;
                    if (drug == null || drugs == null)
                    {
                        return;
                    }
                    //药品信息
                    if (dgvRecordList.Grid.ActiveCell.Column.Key == nameof(EisaiInout.EgInfo))
                    {
                        DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index, nameof(EisaiInout.EioActualAmt), true, false);
                    }
                    //实盘数
                    else if (dgvRecordList.Grid.ActiveCell.Column.Key == nameof(EisaiInout.EioActualAmt))
                    {
                        if (drug.EisaiId == null)
                        {
                            return;
                        }
                        //如果是最后一行
                        if (dgvRecordList.Grid.ActiveRow.Index == drugs.Count - 1)
                        {
                            DemPublic.NextFocusNew(dgvRecordList, drugs.Count - 1, nameof(EisaiInout.EgInfo), false, false);
                            AddGridRow();
                            dgvRecordList.Grid.PerformAction(UltraGridAction.EnterEditModeAndDropdown, false, false);
                            dgvRecordList.GridRefresh();
                        }
                        //如果不是最后一行,跳转到下一行
                        else
                        {
                            DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index + 1, nameof(EisaiInout.EgInfo), false, false);
                        }
                    }
                }
                else if (StatCode == InvenMgrClassify.HC.GetHashCode().ToString())
                {
                    MatInvchkDtl drug = dgvRecordList.Grid.ActiveRow.ListObject as MatInvchkDtl;
                    List<MatInvchkDtl> drugs = dgvRecordList.DataSource as List<MatInvchkDtl>;
                    if (drug == null || drugs == null)
                    {
                        return;
                    }
                    //药品信息
                    if (dgvRecordList.Grid.ActiveCell.Column.Key == nameof(MatInvchkDtl.DmcInfo))
                    {
                        DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index, nameof(MatInvchkDtl.MicdActAmt), true, false);
                    }
                    //实盘数
                    else if (dgvRecordList.Grid.ActiveCell.Column.Key == nameof(MatInvchkDtl.MicdActAmt))
                    {
                        if (drug.DmcId == null)
                        {
                            return;
                        }
                        //如果是最后一行
                        if (dgvRecordList.Grid.ActiveRow.Index == drugs.Count - 1)
                        {
                            DemPublic.NextFocusNew(dgvRecordList, drugs.Count - 1, nameof(MatInvchkDtl.DmcInfo), false, false);
                            AddGridRow();
                            dgvRecordList.Grid.PerformAction(UltraGridAction.EnterEditModeAndDropdown, false, false);
                            dgvRecordList.GridRefresh();
                        }
                        //如果不是最后一行,跳转到下一行
                        else
                        {
                            DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index + 1, nameof(MatInvchkDtl.DmcInfo), false, false);
                        }
                    }
                }
                else
                {
                    AppInvchkDtl drug = dgvRecordList.Grid.ActiveRow.ListObject as AppInvchkDtl;
                    List<AppInvchkDtl> drugs = dgvRecordList.DataSource as List<AppInvchkDtl>;
                    if (drug == null || drugs == null)
                    {
                        return;
                    }
                    //药品信息
                    if (dgvRecordList.Grid.ActiveCell.Column.Key == nameof(AppInvchkDtl.DacInfo))
                    {
                        DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index, nameof(AppInvchkDtl.AicdActAmt), true, false);
                    }
                    //实盘数
                    else if (dgvRecordList.Grid.ActiveCell.Column.Key == nameof(AppInvchkDtl.AicdActAmt))
                    {
                        if (drug.DacId == null)
                        {
                            return;
                        }
                        //如果是最后一行
                        if (dgvRecordList.Grid.ActiveRow.Index == drugs.Count - 1)
                        {
                            DemPublic.NextFocusNew(dgvRecordList, drugs.Count - 1, nameof(AppInvchkDtl.DacInfo), false, false);
                            AddGridRow();
                            dgvRecordList.Grid.PerformAction(UltraGridAction.EnterEditModeAndDropdown, false, false);
                            dgvRecordList.GridRefresh();
                        }
                        //如果不是最后一行,跳转到下一行
                        else
                        {
                            DemPublic.NextFocusNew(dgvRecordList, dgvRecordList.Grid.ActiveRow.Index + 1, nameof(AppInvchkDtl.DacInfo), false, false);
                        }
                    }
                }
            }
        }
原文地址:https://www.cnblogs.com/yuanshuo/p/12857131.html