質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

5376閲覧

C# 計算式を表示させたい

goron7777

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/09/10 00:55

編集2018/09/10 01:06

前提・実現したいこと

C#の初心者で最近学び始めたものです。
textbox2とtextbox3がありまして、=ボタンを押すとtextbox4に答えを出して、listbox1に途中と答えを表示する処理をしたいと思っているのですが、うまく出来ません。いろんなサイトを見ていろいろ試してみましたがわからないので、見にくいソースコードですがどうが宜しくお願いします。

発生している問題・エラーメッセージ

答えだけがlistbox1に表示されて途中式が表示されない。

エラーメッセージ

該当のソースコード

private void button1_Click(object sender, EventArgs e) { int a, b, answer,x; a = Convert.ToInt32(textBox2.Text); b = Convert.ToInt32(textBox3.Text); answer = a + b; if (radioButton1.Checked) { answer = a + b; } if (radioButton2.Checked) { answer = a - b; } if (radioButton3.Checked) { answer = a * b; } if (radioButton4.Checked) { answer = a / b; } textBox4.Text = answer.ToString(); listBox1.Items.Add (answer); } private void radioButton1_CheckedChanged(object sender, EventArgs e) { label1.Text = "+"; } private void radioButton2_CheckedChanged(object sender, EventArgs e) { label1.Text = "-"; } private void radioButton3_CheckedChanged(object sender, EventArgs e) { label1.Text = "*"; } private void radioButton4_CheckedChanged(object sender, EventArgs e) { label1.Text = "/"; } } }

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

listBox1.Items.Add (answer);

リストボックスに値を追加しているのはここだけです。
答えしか追加されていないので答えしか表示されません。
何を追加したいかわかりませんが、同様にして追加してください。

それと、質問文とソース中のテキストボックスの名称の対応が無茶苦茶です。
ソースはコードブロックの中に入れ、ソースに合わせて質問文を編集してください。

###追記

これでいけるのではないかと思います。

C#

1listBox1.Items.Add ($"{a}{label1.Text}{b}={answer}");

投稿2018/09/10 00:59

編集2018/09/10 01:12
Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goron7777

2018/09/10 01:10

失礼しました。今修正してきたのですがこれでましになったでしょうか。 質問をまとめますとlistbox1に現状は答えしか表示されていないのを計算式を表示させたいです。 5+3=8 5*3=15 とこのように表示させたいのですがどうやって表示させるかがわかりません。 よろしくお願いします。
Zuishin

2018/09/10 01:12

追記しました。
goron7777

2018/09/10 01:26

いけました。ありがとうございます。助かりました。 でも内容を理解できていないのでなぜこうなのかが全くわかりません。一度調べてきますのでわからなかったらお時間がある時でいいので解説していただきたいです。
Zuishin

2018/09/10 01:37

https://ufcpp.net/study/csharp/st_string.html 通常、文字列を扱うには "あいうえお" のようにダブルクォーテーションで括りますが、これを $"あいうえお" のように書くことができます。 $ を付けた場合、文字列中の中カッコで囲まれた部分は式として評価されます。 例えば "{a}" と書いた場合は {a} という文字列を表しますが、$"{a}" と書いたばあいは変数 a の中身を表します。 int a = 10; Console.WriteLine($"a の値は {a} です"); 上記コードを実行すると、「a の値は 10 です」のように表示されます。
goron7777

2018/09/10 02:56

ありがとうございます。わかりやすい解説で理解しやすかったです。これを見て復習して頑張って勉強していきます。ありがとうございました!
Zuishin

2018/09/10 03:16

解決済みにしてください。
guest

0

その表示させたい式の文字列を入れる変数を用意し、計算のときにそいつにも式を代入させましょう

C#

1string siki; 2 ... 3 4if (radioButton2.Checked) 5{ 6 answer = a - b; 7 siki = "a-b"; 8} 9...以下同じように 10

んで、式を表示させたいところにsikiを表示させると

投稿2018/09/10 01:04

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goron7777

2018/09/10 01:23

すみません。やってみたのですがうまく動きませんでした。おそらく理解できていないからうまくかけないのだと思います。違う方のやり方で動いたのですが、動けばいいといいのではないので理解できるように勉強します。僕が馬鹿なのでせっかく回答して頂いたのにもうしわけありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問