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