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

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

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

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

Q&A

解決済

4回答

4377閲覧

テキストボックス内の数字の取得

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

0グッド

0クリップ

投稿2019/06/06 06:49

編集2019/06/06 07:51

イメージ説明

1~0までボタンで押されたらテキストボックスに出力(236879)させる様にしました。
そこで入力された数字によって分岐する様にしたいのですが
取得のやり方が分からず調べたのですが、理解できず悩んでいます。

C#

1 private void Button13_Click(object sender, EventArgs e) 2 { ↓ここにボタンで入力した236879を入れたい 3      if(236879==236879) 4       { 5 処理 6        } 7 }

調べた時には自分が思っているような記事が無く、質問させて頂きました。
記事内容はラベルに出力、MessageBox.Showなどで出すやり方はありました。

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

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

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

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

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

Q71

2019/06/06 06:51

タイトルは「取得」ですが、本文は「出力のやり方がわからない」。どっちですか?
m.ts10806

2019/06/06 06:56

>出力のやり方が分からず調べたのですが 調べた内容を具体的に記載してください。 でないと、「確認した記事が間違っている」のか「記事内容をきちんと理解していない」のか伝わりませんので。
退会済みユーザー

退会済みユーザー

2019/06/06 07:13

紛らわしくてすみません。 取得です。
退会済みユーザー

退会済みユーザー

2019/06/06 08:41

質問を書き直しましたよね? 書き直す前には、電卓のように、ボタンが押されるたび、該当するボタンの数字をテキストボックスに追記していくのだと思っていました。書き直した後は、それとは違うようで訳が分からないのですが?
papinianus

2019/06/06 10:27

開発環境とか言語、フレームワークのバージョンわかれば追記ください。あと、windowsですよね?
Zuishin

2019/06/06 11:52

ノベルゲームでユーザの入力した選択肢に合わせて分岐しようとしていますが、文法も何も全くわからない上にノベルゲームのソースが見つからないので、電卓のソースを見つけてきて真似ようとしています。でもノベルゲームと電卓は違うので、どのようにすればいいのかわかりません。 という質問だと思います。
k.matsuda

2019/06/07 00:34

質問者さんへ 最終的な目標は何ですか? ノベルゲームを作ることですか? C#を学ぶことですか? ノベルゲームを作ることが目的なら、C#を使わなくても他にもっと便利なツールがあります。 ツクールシリーズやウディタなんかが有名です。 C#を学ぶことが目的なら、基本はしっかり抑えましょう。 まずは、C#の入門書を買って、基本中の基本の変数や型名、命令文を理解しましょう。 他の人が作ってるコードを見て、これはどういう処理をしているのか調べて理解していきましょう。 電卓のコードの中にもif文はあるはずです。よく見てみてください。
退会済みユーザー

退会済みユーザー

2019/06/07 00:57 編集

解決の回答ありがとうございました。 目標はC#の学習です、そして3か月間のプログラミングスクールに通っております。 現在一か月目ですが、「確かな力が身につくC#超入門」を元に勉強してきましたが 本来2か月で一冊終わる予定を1ヶ月で終わり、今は卒業制作をしている状態です なのでどれもあやふやな状態です。なので今は何をするにも調べたながら模索しながら卒業制作をしております。visualstudioでアプリ、卒業制作を作るのが課題です。 ノベルゲームにたどりついた経緯は卒業生が作っており自分でもやってみたいと思ったのですが ソースコードを見たら元々の画像に白の枠を貼り付け文字を貼り付けヴィジュアルスタジオで だた配列で画像を回している、簡単なものでした。 なので自分はノベルゲームを少しでもリアルに近づける為に一から今は頑張っております。
m.ts10806

2019/06/07 00:58

>if(236879==236879) 比較の式を全角で書いてしまっている時点でかなり基本が抜けていると思います。 入門書を一冊きちんとこなしたほうが良いでしょう。急がば回れと言います。 基本・基礎が全くできていない状態で技術特化の質問サイトを使うのは時期尚早とも言えます。 サポートセンターではありませんし、回答するのは赤の他人です。 赤の他人に依存して何か作り上げるというスタンスが見え隠れすると回答も付かなくなります。
退会済みユーザー

退会済みユーザー

2019/06/07 01:03

はい、作成に当たって基礎が出来てないと実感しました。 基礎からもう一度やり直そうと思います。 ありがとうございました。
k.matsuda

2019/06/07 01:04

それ、なんてスクールですか・・・? 変数や型名なんかも教わったとは思うんですけど・・・。
退会済みユーザー

退会済みユーザー

2019/06/07 01:22

次回質問する機会があったら、その時は全体的なやりたいこと、シナリオ、ストーリーを必ず書いてください。今回のケースでは、上に Zuishin さんが2019/06/06 20:52 に書かれたことです。 XY 問題とかにならないように。(XY 問題と言うのは、X が本来やりたいことで、それを実現するために質問者さんが Y という手段を考えて、Y に関する質問をしたが、Y は X の解決になってないので、Y の答えをもらっても解決にならないということです)
Zuishin

2019/06/07 02:37 編集

ちょっとそのスクールひどすぎますね。詐欺同然のスクールが増えているという話は聞きましたが、1ヶ月もかけて何も教えてないというのはさすがに。
退会済みユーザー

退会済みユーザー

2019/06/07 06:18 編集

そうですね。やりたい事、やった事が書いてあり分かりやすかったです。 次からはこれを参考にして質問しようと思います。 作成に参考になりました いろいろありがとうございます。
guest

回答4

0

テキストボックスのTextプロパティで文字列をとってこれますが、そういうことかな?

投稿2019/06/06 07:01

y_waiwai

総合スコア87774

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

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

退会済みユーザー

退会済みユーザー

2019/06/06 07:13

プロパティの部分は設定せず、ボタンでテキストボックスに入力された数字を取得っていう意味ですが、 この返答でよかったですか?
y_waiwai

2019/06/06 07:31

テキストボックスに入力された文字列はTextプロパティでとってこれますが、これではダメなんでしょうか
退会済みユーザー

退会済みユーザー

2019/06/06 08:40

取って来るの意味がいまいち理解できなく。 文字列をどうやってifの条件に持ってくるのかを悩んでいます。 お門違いな返答でしたらすみません。
k.matsuda

2019/06/07 00:27

この回答に低評価が付いてる意味がわかりません。 簡潔かつ直球な答えそのものです。 あと、質問者さんが「取ってくるの意味がいまいち理解できなく。」 と言っていますが、テキストボックスに入力された数字を取得が目的ではなかったんですか??? 取ってくると取得の意味って違いましたっけ???
guest

0

ベストアンサー

if文は基本中の基本です。
これが理解できなければプログラムは組めません。
学びましょう。

では、if文について簡単に説明します。
まず、if文とは

if ( 条件文 ) { //処理 }

もし、条件文の通りならば、次の {} 内の処理を実行せよ。
という命令文です。

今回の場合は、
もし、(テキストボックスに表示されている文字列が "236879" と等しい)ならば、次の {} 内の処理を実行せよ。
と、なりますよね?

ということは、「テキストボックスに表示されている文字列が "236879" と等しい」を () の中に記述すればいいわけです。

テキストボックスに表示されている文字列とは、
textBoxの中のTextプロパティによって取り出される文字データのことです。
プロパティについては、今の段階で詳細までわからなくて良いですが、
TextBoxやButtonなどの中にあるさまざまなデータだと思ってください。

で、c#に翻訳すると
textBox1.Text となります。(textBox1の部分は、質問者さんが比較したいTextBoxの名前にしてください)
そして、"236879"と等しいかどうか比較するときには「==」を使います。
そうして出来た比較文を、ifの後の()の中に入れてください。

答えを書いてしまいますが、こういう風になります。

if (textBox1.Text == "236789") { //処理 }

もちろん、今説明したことですべてが解決するわけではありませんし、
厳密には違うこともあるかと思いますが、それは今後、学んでいってください。

投稿2019/06/07 00:23

k.matsuda

総合スコア293

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

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

退会済みユーザー

退会済みユーザー

2019/06/07 00:38

ありがとうございます。解決できました。 IF分の書き方などを夜におさらい等をしたのですが、””←これが足りなかったようです。 教科書にもIF分の””を使って書いてある場所がなく知りませんでした。 もし良かったら、なぜ””を使うか教えて貰ってもいいでしょうか?
tamoto

2019/06/07 00:42

なぜそこまで頑なに勉強しようとせず人に聞こうとするのですか?
k.matsuda

2019/06/07 00:56

プログラムで扱うデータにはさまざまな種類があります。 代表的なのは、数値・文字・画像 などです。 今回のTextBoxのTextには、文字列の形で保存されています。 表示されているのは、123などの数字ですが、漢字やひらがなと同じ文字としての扱いです。 123 と記述すると数値を表し、 "123" と記述すると文字列を表します。 .Textは、文字列なので比較するときには同じ文字列でなければいけません。 追記依頼のほうにも書きましたが、これは基本中の基本です。 理解できなければプログラムは何一つ出来ません。 自分で、考えることも必要です。 変数・型名・基本的な命令文 これらをきちんと理解してください。
退会済みユーザー

退会済みユーザー

2019/06/07 00:59

解説ありがとうございます。 テキストボックスに表示されている数字は数字だと思っていました 文字列の扱いなんですね、勉強になります。 ありがとうございました。
guest

0

こんにちは。

多分、こういうことなのでしょうか……かなり基本的な話なのですけど、

csharp

1textBox1.Text = "新しい文";

この記述では、テキストボックスに文字列をセットしていることは分かりますね?右から左です。

csharp

1var テキストボックスの中身 = textBox1.Text;

つまり、逆にします。変数 テキストボックスの中身textBox1.Text を代入します。右から左です。
これで任意の場所でテキストボックスの中身を取り出すことができます。


プログラミングの学習にあたっては、その言語で「何が(どんな記述が)できるのか」を知るのが一番大切なんですが、
その辺りは基本的すぎるためか、ピンポイントの解説等がほとんどなく、大量の情報がフラットに提供されていることがほとんどなので、
割と習得が難しいところがあるかなと思っています。
今回はちょっとだけ応用編みたいな感じでしたが、今まで既にやっていたことから正解に辿り着けなくもない、的なところですね。

今一度、構文などの基礎情報を総なめしてみるのも良いかと思います。
「こういう事ができる」というのを、覚えるまではいかなくてもいいので、まずは知ってください。

投稿2019/06/06 07:34

tamoto

総合スコア4110

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

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

退会済みユーザー

退会済みユーザー

2019/06/06 08:34

回答ありがとうございます。やり方と結果も大体わかりました。とても分かりやすかったです。ただ テキストの中身はどんな感じでかけばいいのでしょうか?
tamoto

2019/06/06 08:38

コメントの「テキストの中身」とは何を指した発言でしょうか? どこに疑問があるのか分かりませんでした。 「どんな感じでかけば」とは、何をしたいのか明確にしてください。
退会済みユーザー

退会済みユーザー

2019/06/06 08:44

すみません。 コードの書き方です。 入力された数字=テキスト中身 Var 入力された数字=TextBOX.Text    ↑ここの書き方です。
Q71

2019/06/06 09:29

親や周りの人が使っている言語は聴いて覚えますが、それ以外の言語は文法を学びながら用例を学びます。プログラミング言語も同じです。人がコンピュータに、人がしたいことを伝えるための言語です。まずは文法を抑えてください。
tamoto

2019/06/06 10:50

今のあなたは、何一つ勉強もせずに自動車を操縦しようとしているようなものです。 事故を起こしても誰にも迷惑は掛けませんが、せめて交通ルールを覚えようとは思わないのでしょうか? そんなものは人に聞く前に教科書に目を通すくらいはするものです。 文法を、プログラミングの基礎の基礎を、まずは一通り学習してください。 大丈夫です。免許を取るよりよっぽど簡単です。
guest

0

1~0までの Button の CommandArgument プロパティに1~0を設定しておき、1~0全部のボタンのClick イベントに同じイベントハンドラ Button13_Click(object sender, EventArgs e) をアタッチしておけば、((Button)sender).CommandArgument でどのボタンがクリックされたか分かると思います。

【訂正】

ASP.NET のコントロールと勘違いしてましたので訂正します。Windows Forms 用のボタンには CommandArgument プロパティはありませんでした。ASP.NET とは違い、Windows Forms アプリの場合すべてのコントロールのインスタンスをメモリに保持しますので、そう言うものを使わなくても sender と Button のインスタンスが同じか否かで判定できます。

VB.NET のサンプルですが、以下の記事を見てください。分からない点があったら質問してください。

第25回 イベントとイベント・ハンドラ
https://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet25/vb6tonet25_02.html

投稿2019/06/06 07:21

編集2019/06/06 08:14
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2019/06/06 07:31

visualstudioを使っているのですがボタンプロパティにCommandArgumentというのが無く、 自分でコード書くのでしょうか?
退会済みユーザー

退会済みユーザー

2019/06/06 07:36

作っているのは Windows Forms アプリですよね? であればあるはずですけど。
退会済みユーザー

退会済みユーザー

2019/06/06 07:44

失礼しました。他のコントロールと勘違いしてました。別途回答を訂正しておきます。
退会済みユーザー

退会済みユーザー

2019/06/06 07:45

すみません。なんど探してもありませんでした。
退会済みユーザー

退会済みユーザー

2019/06/06 08:15

レスが行き違いになってしまいすみません。回答欄を訂正しておきましたのでご覧ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問