0
電卓は正しく機能するようになっていますが、コードがはるかに乱雑であると判断し、整理してベストプラクティスを見つける必要がありました私はYouTubeでいくつかの動画を見て見つけたと思った。C#電卓は、数学的演算子をテキストボックスに表示することができません
残念ながら、この新しい方法で画面にオペレータを表示させることはできません(たとえば、 '6'を押すと6が表示されますが、 '+'を押すと何も起こりませんオペレータを挿入できない場合は、等価ボタンが機能しているかどうかを確認できません)
このコードは以下のとおりです。
Double value = 0;
String operation = "";
//bool op_pressed = false;
public MainForm()
{
InitializeComponent();
}
public void button_click(object sender, EventArgs e)
{
Button button = (Button)sender;
textBox1.Text = textBox1.Text + button.Text;
}
public void op_click(object sender, EventArgs e)
{
Button button = (Button)sender;
operation = button.Text;
value = Double.Parse(textBox1.Text);
//op_pressed = true;
}
public void ClearClick(object sender, EventArgs e)
{
textBox1.Text = "";
}
private void EqualClick(object sender, EventArgs e)
{
switch(operation)
{
case "+":
textBox1.Text = (value + Double.Parse(textBox1.Text)).ToString();
break;
case "-":
textBox1.Text = (value - Double.Parse(textBox1.Text)).ToString();
break;
case "/":
textBox1.Text = (value/Double.Parse(textBox1.Text)).ToString();
break;
case "*":
textBox1.Text = (value * Double.Parse(textBox1.Text)).ToString();
break;
default:
break;
}
//op_pressed = false;
}
オペレータがop_clickイベントを購読していると仮定します。このイベントは、テキストボックスの値を決して変更しません。 –
また、追加情報を追加するだけで再投稿しないでください。これが編集ボタンのためのものです。 –
あなたの質問には、あなたが[以前に投稿した](https://stackoverflow.com/questions/45401950/i-have-created-ac-sharp-calculator-and-tried-to-clean)と同じ脆弱性がほとんどあります。 -up-the-versio-from-versio)を使用します。コード例は[mcve]ではなく、オペレータボタンがクリックされたときに「何も起こらない」という主張は具体的ではありません。確かに_何かが起こる。たとえば、(以前は)イベントハンドラが登録されていると主張しました。そうであれば、イベントハンドラが呼び出されます。それは何かです。あなたの投稿をもう一度削除しないでください。良い質問であるように編集してください。 –