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

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

ただいまの
回答率

89.99%

comboboxとtextboxの連携

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 505

gyaSon

score 7

前提・実現したいこと

コンボボックスとテキストボックスの連携
その値を用いた、外貨変換プログラムの作成。

ここに質問の内容を詳しく書いてください。
開発環境 visual studio2019 言語 VB.NETで作成しています。
コンボボックスにて対象の通貨(¥、$、€)を選択し、テキストボックスに入力された数値を
¥、$、€のいずれかに変換し、ラベルに表示させるソースを作成をしています。

入力の値としてコンボボックスとテキストボックスの連携させていのですが
VB.NETを各サイトを参考にしようと探していたのですがこれだという結果が得られません。

皆さんのお知恵をお借りできればと思います。

求めている動作のイメージ

コンボボックス:¥
テキストボックス:108

入力された数値が¥108として
この数値を$に変換する。

ラベルに$1を表示する。

レートは下記の通りで宣言しています。
$=108
€=120

その後

求めておりました動作は何とかできるようになりました。
zuishinさんのアドバイスを組めたかどうかですが・・・。

ソースコード記載いたします。

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim strData() As String = {"\", "$", "€"}
        'コンボボックスにアイテムを追加する
        ComboBox1.Items.AddRange(strData)
        ComboBox2.Items.AddRange(strData)
        ComboBox3.Items.AddRange(strData)

    End Sub


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '円に変換
        Dim Dollar As String = 108
        Dim EUR As String = 120

        'テキストボックス1の円変換

        If ComboBox1.SelectedIndex = 0 Then
            Label1.Text = ("\" & TextBox1.Text)
        ElseIf ComboBox1.SelectedIndex = 1 Then
            Label1.Text = ("\" & TextBox1.Text * Dollar)
        ElseIf ComboBox1.SelectedIndex = 2 Then
            Label1.Text = ("\" & TextBox1.Text * EUR)
        End If

        'テキストボックス2を円変換

        If ComboBox2.SelectedIndex = 0 Then
            Label2.Text = ("\" & TextBox2.Text)
        ElseIf ComboBox2.SelectedIndex = 1 Then
            Label2.Text = ("\" & TextBox2.Text * Dollar)
        ElseIf ComboBox2.SelectedIndex = 2 Then
            Label2.Text = ("\" & TextBox2.Text * EUR)
        End If

        'テキストボックス3を円変換

        If ComboBox3.SelectedIndex = 0 Then
            Label3.Text = ("\" & TextBox3.Text)
        ElseIf ComboBox3.SelectedIndex = 1 Then
            Label3.Text = ("\" & TextBox3.Text * Dollar)
        ElseIf ComboBox3.SelectedIndex = 2 Then
            Label3.Text = ("\" & TextBox3.Text * EUR)
        End If
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '$に変換
        Dim Dollar As String = 108
        Dim EUR As String = 120

        'テキストボックス1のドル変換

        If ComboBox1.SelectedIndex = 0 Then
            Label1.Text = Format((TextBox1.Text / Dollar), "0.00")
            Label1.Text = CStr("$" & Label1.Text)
        ElseIf ComboBox1.SelectedIndex = 1 Then
            Label1.Text = CStr("$" & TextBox1.Text)
        ElseIf ComboBox1.SelectedIndex = 2 Then
            Label1.Text = Format((TextBox1.Text * EUR / Dollar), "0.00")
            Label1.Text = CStr("$" & Label1.Text)
        End If

        'テキストボックス2をドル変換

        If ComboBox2.SelectedIndex = 0 Then
            Label2.Text = Format((TextBox2.Text / Dollar), "0.00")
            Label2.Text = CStr("$" & Label2.Text)
        ElseIf ComboBox2.SelectedIndex = 1 Then
            Label2.Text = CStr("$" & TextBox2.Text)
        ElseIf ComboBox2.SelectedIndex = 2 Then
            Label2.Text = Format((TextBox2.Text * EUR / Dollar), "0.00")
            Label2.Text = CStr("$" & Label2.Text)
        End If

        'テキストボックス3をドル変換

        If ComboBox3.SelectedIndex = 0 Then
            Label3.Text = Format((TextBox3.Text / Dollar), "0.00")
            Label3.Text = CStr("$" & Label3.Text)
        ElseIf ComboBox3.SelectedIndex = 1 Then
            Label3.Text = CStr("$" & TextBox3.Text)
        ElseIf ComboBox3.SelectedIndex = 2 Then
            Label3.Text = Format((TextBox3.Text * EUR / Dollar), "0.00")
            Label3.Text = CStr("$" & Label3.Text)
        End If
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click '€に変換

        Dim Dollar As String = 108
        Dim EUR As String = 120

        'テキストボックス1のユーロ変換

        If ComboBox1.SelectedIndex = 0 Then
            Label1.Text = Format((TextBox1.Text / EUR), "0.00")
            Label1.Text = CStr("€" & Label1.Text)
        ElseIf ComboBox1.SelectedIndex = 1 Then
            Label1.Text = Format((TextBox1.Text * Dollar / EUR), "0.00")
            Label1.Text = CStr("€" & Label1.Text)
        ElseIf ComboBox1.SelectedIndex = 2 Then
            Label1.Text = CStr("€" & TextBox1.Text)
        End If

        'テキストボックス2をユーロ変換

        If ComboBox2.SelectedIndex = 0 Then
            Label2.Text = Format((TextBox2.Text / EUR), "0.00")
            Label2.Text = CStr("€" & Label2.Text)
        ElseIf ComboBox2.SelectedIndex = 1 Then
            Label2.Text = Format((TextBox2.Text * Dollar / EUR), "0.00")
            Label2.Text = CStr("€" & Label2.Text)
        ElseIf ComboBox2.SelectedIndex = 2 Then
            Label2.Text = CStr("€" & TextBox2.Text)
        End If

        'テキストボックス3をユーロ変換

        If ComboBox3.SelectedIndex = 0 Then
            Label3.Text = Format((TextBox3.Text / EUR), "0.00")
            Label3.Text = CStr("€" & Label3.Text)
        ElseIf ComboBox3.SelectedIndex = 1 Then
            Label3.Text = Format((TextBox3.Text * Dollar / EUR), "0.00")
            Label3.Text = CStr("€" & Label3.Text)
        ElseIf ComboBox3.SelectedIndex = 2 Then
            Label3.Text = CStr("€" & TextBox3.Text)
        End If
    End Sub

End Class


ここから省く、もしくはより分かりやすくまとめる方法が
あるのでしょうが今の私の知識ではこれで何とかというところです。

御助力をお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • gyaSon

    2019/06/05 10:50

    貴重なご意見ありがとうございます。
    こちらを参考にさらなる修正を加えていきます。

    ちなみにい一旦、この質問を解決済みにしたいのですが
    どのようにすれば解決済みにできますか?

    キャンセル

  • k.matsuda

    2019/06/05 10:53

    自己解決にコメントすれば、解決済みになりますよ。

    キャンセル

  • k.matsuda

    2019/06/05 10:58

    ああ、課題だったのですね。
    不自然な仕様だと思いました。

    キャンセル

回答 1

check解決した方法

0

皆様のアドバイスにより光明が見えてきました!
ありがとうございます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる