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; }
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; }