只要是js支持的运算都可以支持。
效果图:注意,给出的Demo是form版本的,其他版本大同小异。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Eval
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void execBtn_Click(object sender, EventArgs e)
{
if (!"".Equals(inTxt.Text))
{
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass();
sc.Language = "JavaScript";
string rval = inTxt.Text;
rval = rval.Replace("Evaluator_a", val_a.Text);
string r = "";
try
{
r = sc.Eval(rval).ToString();
}
catch { MessageBox.Show("计算失败!"); }
rtLst.Items.Add(inTxt.Text + "=" + ("".Equals(r)?"ERR":r));
rtLst.SelectedIndex = rtLst.Items.Count - 1;
}
else
{
MessageBox.Show("请输入公式!");
}
}
}
}