protected virtual void OnParameterEntered(ParameterEnteredEventArgs e) { if (ParameterEntered != null) { ParameterEntered(this, e); } }
private void txtInput_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Return) { e.Handled = true; return; } if (e.KeyChar == (char)Keys.Back) { // Hide tooltip if character to be deleted is a delimiter if (txtInput.Text.Length > 0) { char del = txtInput.Text[txtInput.Text.Length - 1]; foreach (char ch in delimiters) { if (ch == del) { bool flag = true; // Check if previous character is delimiter if (txtInput.Text.Length > 1) { char temp = txtInput.Text[txtInput.Text.Length - 2]; foreach (char c in delimiters) { if (c == temp) { flag = false; break; } } } if (flag) { HideToolTip(); } break; } } } return; } // Fire the ParameterEntered event bool paramFlag = false; foreach (char ch in delimiters) { if (e.KeyChar == ch) { paramFlag = true; break; } } if (paramFlag) { var parameterEnteredArgs = new ParameterEnteredEventArgs(txtInput.Text, ParseInput()); OnParameterEntered(parameterEnteredArgs); if (parameterEnteredArgs.ToolTip != "") { HideToolTip(); ShowToolTip(parameterEnteredArgs.ToolTip); } } }
// Stores the current line // Used while navigating the previous commands list private void txtInput_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Return) { if (txtInput.Text != "" && IgnoreBlankCommands) { SuspendLayout(); string prevPrompt = lblPrompt.Text; Color prevPromptColor = PromptColor; // Raise the parameter entered event var parameterEnteredArgs = new ParameterEnteredEventArgs(txtInput.Text, ParseInput(), true); OnParameterEntered(parameterEnteredArgs); // Raise the command event var args = new CommandEventArgs(txtInput.Text, ParseInput(), this); OnCommand(args); if (args.Cancel == false) { if (rtbMessages.Lines.Length > 0) { rtbMessages.AppendText("\r\n"); } AddCommand(prevPrompt, prevPromptColor, txtInput.Text); if (args.Message != "") { AddMessage(args.Message); } rtbMessages.ScrollToCaret(); prevMessages.Add(txtInput.Text); if (autoCompleteStore && args.Record) { txtInput.AutoCompleteCustomSource.Add(txtInput.Text); } currentLine = prevMessages.Count - 1; } txtInput.Text = ""; ResumeLayout(); } e.Handled = true; HideToolTip(); return; } if (e.KeyCode == Keys.Up) { if (currentLine >= 0 && prevMessages.Count > 0) { txtInput.Text = prevMessages[currentLine].ToString(); txtInput.SelectionLength = 0; txtInput.SelectionStart = txtInput.Text.Length; currentLine--; } e.Handled = true; HideToolTip(); return; } if (e.KeyCode == Keys.Down) { if (currentLine < prevMessages.Count - 2) { currentLine++; txtInput.Text = prevMessages[currentLine + 1].ToString(); txtInput.SelectionLength = 0; txtInput.SelectionStart = txtInput.Text.Length; } e.Handled = true; HideToolTip(); return; } if (e.KeyCode == Keys.Escape) { if (txtInput.SelectionLength > 0 && txtInput.AutoCompleteMode != AutoCompleteMode.None) { txtInput.Text = txtInput.Text.Substring(0, txtInput.SelectionStart); txtInput.SelectionStart = txtInput.Text.Length; } else { if (toolTipCommand.Active == false && cancelOnEsc) { txtInput.Text = ""; } } HideToolTip(); e.Handled = true; return; } }