MaReee69
@MaReee69

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

テキストボックスと別のテキストボックスへのつなげ方

解決したいこと

テキストボックスに数字を入力すると別のテキストボックスにその数値が反映されてswitch文で場合分けしたパターン別に処理するプログラムを作りたいのですが、どうしたらテキストボックスに入れた数値が別のテキストボックスに反映されるでしょうか

発生している問題・エラー

出ているエラーメッセージを入力

例)

NameError (uninitialized constant World)

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

ソースコードを入力

例)

def greet
  puts Hello World
end

自分で試したこと

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

0

2Answer

テキストボックスと言っているのはWinFormのテキストボックスでしょうか?
値をコピーするだけなら以下のような記述でできると思います。

textBox2.Text = textBox1.Text;

どのタイミングでコピーするかについては、適切なイベント内で上記記述をしてあげてください。

また、質問テンプレートがそのまま表示されているので、質問する際はテンプレートの不要な部分は削除して投稿してください。

0Like

Comments

  1. @MaReee69

    Questioner

    ご回答ありがとうございます。

    コピーというか、例えばなんですけど、数字をテキストボックス(①)に入れると別のテキストボックス(①とは別)に数字が理解(?)されてその別のテキストボックスに名前が出力される様にしたいんです。その名前はswitch文で1は○○さん 2は○○さん となっていて、それが呼び出される感じです。

    それのプログラムのやり方が調べてもわからなくて、わかりづらくてすみません。
    ご指摘ありがとうございます。次からはテンプレは消すか何かしら書いときます。
  2. なんとなくイメージ伝わりました。
    よくやるやり方としては、まず処理するタイミングは項目脱出時の「Validating」か別のボタンを用意してボタンクリック時に実装するのがいいかと思います。

    あとは、そのイベント内でテキストボックスの値を取得して、その値により分岐処理を書いてあげれば実現できると思います。
  3. @MaReee69

    Questioner

    ご回答ありがとうございます。
    色々と試してみます。

イメージこんな感じでしょうか?

c#.gif

private void button1_Click(object sender, EventArgs e)
{
    var id = textBox1.Text;

    switch (id)
    {
        case "1":
            label1.Text = "田中";
            break;
        case "2":
            label1.Text = "鈴木";
            break;
        default:
            label1.Text = "";
            break;
    }
}

今回はswitch文を使って記載しましたが、今後人数が増えたりすることがある場合こういった書き方ですと保守性が下がります。
DBなどにidと名称を管理するマスタを用意して、そちらと突き合わせて表示させるような処理の方が適切かと思います。

0Like

Comments

  1. @MaReee69

    Questioner

    これです!
    伝わってよかったです。
    確かに保守性の観点からみると突き合せた方がよさそうですね。
    ありがとうございます

Your answer might help someone💌