Example #1
0
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            bool bAlreadyProceed = false,   // клавиша уже обработана
                 bHandledKey     = false;
            int nF = 0;

            nF = xFuncs.TryGetFunc(e);
            if (bEditMode == true)
            {
                if (((e.KeyValue >= W32.VK_D0) && (e.KeyValue <= W32.VK_D9)) ||
                    (e.KeyValue == W32.VK_PERIOD))
                {
                    //if (((e.KeyValue >= W32.VK_D0) && (e.KeyValue <= W32.VK_D9)) ||
                    //    (e.KeyValue == W32.VK_BACK) || (e.KeyValue == W32.VK_PERIOD_D))
                    nF = 0;
                }
            }

            if (ehCurrFunc != null)
            {// клавиши ловит одна из функций
                bAlreadyProceed = ehCurrFunc(nF, e);
            }
            else
            {
                // обработка функций и клавиш с учетом текущего Control
                if (tcMain.SelectedIndex == PG_DOC)
                {
                    bAlreadyProceed = Doc_KeyDown(nF, e);
                }
                else if (tcMain.SelectedIndex == PG_DIR)
                {
                    bAlreadyProceed = Direct_KeyDown(nF, e);
                }
                else if (tcMain.SelectedIndex == PG_TTN)
                {
                    bAlreadyProceed = TTN_KeyDown(nF, e);
                }
                else if (tcMain.SelectedIndex == PG_NSI)
                {
                    bAlreadyProceed = NSI_KeyDown(nF, e);
                }
                else if (tcMain.SelectedIndex == PG_PAR)
                {
                    bAlreadyProceed = AppPars_KeyDown(nF, e);
                }
                else if (tcMain.SelectedIndex == PG_SRV)
                {
                    bAlreadyProceed = Service_KeyDown(nF, e);
                }
            }

            if ((nF > 0) && (bAlreadyProceed == false))
            {// общая обработка функций
                bHandledKey = ProceedFunc(nF, e, sender);
            }

            // а здесь - только клавиши
            if ((bAlreadyProceed == false) && (bHandledKey == false))
            {
                switch (e.KeyValue)     // для всех вкладок
                {
                case W32.VK_ENTER:
                    if (bEditMode == true)
                    {
                    }
                    e.Handled = true;
                    break;

                case W32.VK_TAB:
                    break;
                }
            }
            bSkipChar = e.Handled;
        }
Example #2
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;
        }