Пример #1
0
        private void Kompl_KeyDown(object sender, KeyEventArgs e)
        {
            int nDig  = 0,
                nFunc = 0;
            bool ret  = true;

            bSkipKey = false;
            nFunc    = xFuncs.TryGetFunc(e);

            if (bEditMode == false)
            {//в режиме просмотра
                switch (nFunc)
                {
                case AppC.F_LOAD_DOC:
                    xMF.xCLoad.drPars4Load = ((DataRowView)((tPolName.DataBindings[0]).BindingManagerBase.Current)).Row;
                    //DataRow ddrr = ((DataRowView)((tPolName.DataBindings[0]).BindingManagerBase.Current)).Row;
                    //xMF.xCLoad.dr1st = ddrr;
                    this.Close();
                    break;

                case AppC.F_CHG_REC:
                    // перед редактированием все очищается
                    xMF.xSm.Uch2Lst(0, true);
                    tLstUch.Text = xMF.xSm.LstUchKompl;

                    BeginEditB();
                    break;

                default:
                    ret = false;
                    break;
                }
                if (!ret)
                {
                    switch (e.KeyValue)
                    {
                    case W32.VK_ENTER:
                        xMF.xCLoad.drPars4Load = ((DataRowView)((tPolName.DataBindings[0]).BindingManagerBase.Current)).Row;
                        this.Close();
                        break;

                    case W32.VK_ESC:
                        this.Close();
                        break;

                    default:
                        ret = false;
                        break;
                    }
                }
            }
            else
            {// для режима редактирования
                switch (nFunc)
                {
                case AppC.F_DEL_REC:
                    xMF.xSm.Uch2Lst(0, true);
                    tLstUch.Text = xMF.xSm.LstUchKompl;
                    break;

                default:
                    ret = false;
                    break;
                }
                if (!ret)
                {// функции не вызывались
                    ret = true;
                    //if ((e.KeyValue >= W32.VK_D1) && (e.KeyValue <= W32.VK_D9))

                    if (Srv.IsDigKey(e, ref nDig))
                    {
                        //int i = (e.KeyValue == W32.VK_D1) ? 1 : (e.KeyValue == W32.VK_D2) ? 2 : (e.KeyValue == W32.VK_D3) ? 3 :
                        //        (e.KeyValue == W32.VK_D4) ? 4 : (e.KeyValue == W32.VK_D5) ? 5 : (e.KeyValue == W32.VK_D6) ? 6 :
                        //        (e.KeyValue == W32.VK_D7) ? 7 : (e.KeyValue == W32.VK_D8) ? 8 : 9;
                        if (nDig == 9)
                        {
                            xMF.xSm.Uch2Lst(99, true);
                        }
                        else
                        {
                            if (xMF.xSm.LstUchKompl == "99")
                            {
                                xMF.xSm.Uch2Lst(nDig, true);
                            }
                            else
                            {
                                xMF.xSm.Uch2Lst(nDig);
                            }
                        }
                        tLstUch.Text = xMF.xSm.LstUchKompl;
                    }
                    else
                    {
                        switch (e.KeyValue)
                        {
                        case W32.VK_UP:
                            aEd.TryNext(AppC.CC_PREV);
                            break;

                        case W32.VK_DOWN:
                            aEd.TryNext(AppC.CC_NEXT);
                            break;

                        case W32.VK_ENTER:
                            if (aEd.TryNext(AppC.CC_NEXTOVER) == AppC.RC_CANCELB)
                            {
                                EndEditB(true);
                            }
                            break;

                        case W32.VK_ESC:
                            EndEditB(false);
                            break;

                        default:
                            ret = false;
                            break;
                        }
                    }
                }
            }



            e.Handled = ret;
            bSkipKey  = ret;
        }