2017-11-04 9 views
-2

視覚的にC#で単一のテキストボックスで基本的な算術演算を実行する

私はテキストボックスとボタンを持っています。テキストボックスに算術演算を入力してボタンをクリックすると、

テキストボックスに1 + 1の値を変更し、算術演算の答えに置き換えます2)

だから入力10場合 - テキストボックスに4とボタンを押して、同じテキストボックスには、これが可能であるならば、私は知りません6.

に値を変更する必要があります。

+6

これがあります可能 – jasttim

+0

この質問は、閉じられることができますか? – jasttim

答えて

0

テキストボックスには、現在の文字列値に関連する.Textプロパティがあります。 Enterキーを押すか、ボタンをクリックするなどのイベントに変換と計算をマップする必要があります。

これを行う最も簡単な方法の1つは、DataTableクラスのComputeメソッドを使用することです。私は、これはいくつかの方法で実現することができる

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

1行にこれを行うことができ文を連結している

が、ここで私はそれを行うだろう方法は次のとおりです。もちろん

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); 
     } 
    } 
} 
+0

は私が何 を行うには、この権利 'ます。private voidのbutton1_Click(オブジェクト送信者、EventArgsの電子) { textBox1.Text = $" {新しいのDataTable()は非常にわからないんだけど、C#に新たなんだ。計算($ "{textBox1.Text.Trim()}"、 "")} "; }「 ? – staynjokede

+0

これはどのように実装できるかの例を追加しました – jasttim

+0

この行にはエラーがあります '$" {new DataTable()} $ {{{Equation.Trim()} "、"}} "; ' とこの行 'MessageBox.Show($" {Ex.Message} \ n \ n {equation.Trim()} "、Ex.Source、MessageBoxButtons.OK、MessageBoxIcon.Information); } ' – staynjokede