在单个文本框中执行基本算术

时间:2017-11-04 16:01:06

标签: c#

在visual c#中,

我有一个文本框和一个按钮。当您在文本框中输入算术运算(例如“1 + 1”)并单击按钮时,

我希望文本框中的1 + 1值更改并替换为算术的答案(即2)

因此,如果您在文本框中输入10 - 4并按下按钮,则相同的文本框应将值更改为6.

我不知道这是否可行。

1 个答案:

答案 0 :(得分:0)

您的文本框具有与当前字符串值相关的.Text属性。您需要将转换和计算映射到事件,例如按Enter或单击按钮。

最简单的方法之一是使用DataTable类的Compute方法。

我已经连接了一个可以在1行上执行此操作的语句

myTextBox.Text = $"{new DataTable().Compute($"{myTextBox.Text.Trim()}", "")}";

这可以通过多种方式实现,这里我将如何实现:

public partial class Form1 : Form
{
    public Form1() {
        InitializeComponent();
    }

    private void Calculate_btn_Click(object sender, EventArgs e) {
        InputTextbox.Text = Evaluate(InputTextbox.Text);
    }

    private string Evaluate(string equation) {
        try {
            return $"{new DataTable().Compute($"{equation.Trim()}", "")}";
        } catch (Exception Ex) {
            MessageBox.Show($"{Ex.Message}\n\n{equation.Trim()}", Ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        return null;
    }

    private void InputTextbox_KeyPress(object sender, KeyPressEventArgs e) {
        if (e.KeyChar == (char)13) {
            InputTextbox.Text = Evaluate(InputTextbox.Text);
        }
    }
}