private void editorModeToolStripMenuItem_Click(object sender, EventArgs e) { if (editorModeToolStripMenuItem.Checked == true) { isEditorMode = false; editorModeToolStripMenuItem.Checked = false; openToolStripMenuItem.Enabled = false; LabelExplain.Text = ""; if (MainrichTextBox.Text != "") { DialogResult Result = MessageBox.Show("是否保存", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (Result == DialogResult.Yes) { saveToolStripMenuItem_Click(sender, e); } } MainrichTextBox.Clear(); } else { isEditorMode = true; editorModeToolStripMenuItem.Checked = true; MainrichTextBox.Clear(); openToolStripMenuItem.Enabled = true; LabelExplain.Text = " 当前处于编辑器模式,若要执行请按\"Ctrl+Enter\""; } }
private void run(string input, object sender, EventArgs e, RichTextBox richtextbox) { try { string pattern = @"(?<!Math\.)(E|LN2|LN10|LOG2E|LOG10E|PI|SQRT1_2|SQRT2|abs|acos|asin|atan|atan2|ceil|cos|exp|floor|log|max|min|pow|random|round|sin|sqrt|tan)"; MatchCollection mc = Regex.Matches(input, pattern); foreach (Match m in mc) { Regex rgx = new Regex(pattern); input = rgx.Replace(input, "Math." + m); } switch (input.TrimEnd(' ')) { case "help": helpToolStripMenuItem1_Click(sender, e); break; case "exit": exitToolStripMenuItem_Click(sender, e); break; case "save": saveToolStripMenuItem_Click(sender, e); break; case "statusbar": statusBarToolStripMenuItem_Click(sender, e); break; case "menubar": menuBarToolStripMenuItem_Click(sender, e); break; case "clear": MainrichTextBox.Clear(); break; default: Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine(); var result = Microsoft.JScript.Eval.JScriptEvaluate(input, ve); richtextbox.AppendText("\n" + result.ToString()); break; } } catch (NullReferenceException) { } catch (Exception er) { richtextbox.AppendText("\n" + er.Message); } }
private void Clear(object sender, EventArgs e) { MainrichTextBox.Clear(); }