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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

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

Q&A

4回答

2815閲覧

他のフォームの値を表示したい

zeroyuta

総合スコア8

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

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

0グッド

0クリップ

投稿2016/10/06 02:13

###前提・実現したいこと
C#で学習用基本会計ソフトという題名で開発を行っているのですが,
ほかのフォームから値を持ってくることをしてエラーは出ませんが
思っていることとは違う動きになってしまいました.

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

メッセージボックスに何も表示されない

###該当のソースコード

C#

1namespace _002 2{ 3 public partial class basic_pro1 : Form 4 { 5 public basic_pro1() 6 { 7 InitializeComponent(); 8 } 9 10 public/*private*/ void tableBindingNavigatorSaveItem_Click(object sender, EventArgs e) 11 { 12 this.Validate(); 13 this.tableBindingSource.EndEdit(); 14 this.tableAdapterManager.UpdateAll(this._001DataSet); 15 16 } 17 18 public/*private*/ void basic_pro1_Load(object sender, EventArgs e) 19 { 20 // TODO: このコード行はデータを '_001DataSet.Table' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 21 this.tableTableAdapter.Fill(this._001DataSet.Table); 22 23 } 24 25 public void button1_Click(object sender, EventArgs e) 26 { 27 // basic_proからテキストボックスを読み込んでくる 28 basic_pro newform = new basic_pro(); 29 // basic_pro:lstb1,lmtb1,rstb1,rmtb1 30 // 読み込んだテキストボックスをメッセージボックスに表示 31 MessageBox.Show(newform.lstb1.Text); 32 33 34 } 35 } 36}

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/10/06 02:22

newform.lstb1 とは何ですか? そのあたりの定義が不明では答が出せないのですが。
zeroyuta

2016/10/06 02:27

他のフォーム(basic_pro)から読み込んだテキストボックス(lstb1)の値をメッセージボックスに表示したいという意味です
guest

回答4

0

ご協力ありがとうございました.
そしてご足労をさせてすいませんでした.
皆さんの回答を参考にしても自分の力ではどうすることもできませんでした.
もう一度自分のコードを見直し,回答者様にわかりやすく説明できるように出なおしてきます.
このたびはありがとうございました.そしてせっかくの回答を無駄にしてしまいすいませんでした.

投稿2016/10/06 03:21

zeroyuta

総合スコア8

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

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

0

こんにちは。

basic_proフォームを表示してないですよね?
取り敢えず下記でできます。basic_pro1_Shownはフォームデザイナのイベント・タブから生成すれば簡単です。
なお、base_proフォームの表示をbasic_pro1_Shownで行うべきかどうかはアプリの設計次第ですので、アプリに合わせて適切な場所で行って下さい。

C#

1namespace _002 2{ 3 public partial class basic_pro1 : Form 4 { 5 basic_pro newform ; 6 public basic_pro1() 7 { 8 InitializeComponent(); 9 newform = new basic_pro(); 10 } 11 12 private void basic_pro1_Shown(object sender, EventArgs e) 13 { 14 newform.Show(); 15 } 16 17(中略) 18 19 public void button1_Click(object sender, EventArgs e) 20 { 21 // basic_pro:lstb1,lmtb1,rstb1,rmtb1 22 // 読み込んだテキストボックスをメッセージボックスに表示 23 MessageBox.Show(newform.lstb1.Text); 24 } 25 } 26}

投稿2016/10/06 03:04

Chironian

総合スコア23272

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

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

zeroyuta

2016/10/06 03:22

うまく動作できませんでした. ちゃんと自分のやりたいことを見直すために出直してきます. ありがとうございました.
guest

0

他のフォーム(basic_pro)から読み込んだテキストボックス(lstb1)の値をメッセージボックスに表示したいという意味です

basic_pro newform = new basic_pro(); の時点ではそのテキストボックスには何も設定されてないからでは?

試しに、new した直後に、

newform.lstb1.Text = "何らかのテキスト";

として、その後に MessageBox で表示してみたらどうなりますか?

投稿2016/10/06 02:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

zeroyuta

2016/10/06 02:39

アプリの中で値を入力して,入力した値が他のフォームのボタンをクリックしたときに その値がメッセージボックスに表示される仕組みにしたいのです. なので,コード内に何らかのテキストが入れられないのです.
退会済みユーザー

退会済みユーザー

2016/10/06 02:52

私の言ってることが理解していただけてないようです。 basic_pro newform = new basic_pro(); の時点では newform.lstb1.Text には何も設定されてないのですよね? であれば、その直後に MessageBox で newform.lstb1.Text を表示しても MessageBox には何も表示されないのは当たり前ですよね。文字列を表示させたいなら、あなたがプログラムを書いて文字列を設定しないと何ともならないのは分かりますか? 情報の追加依頼で、 > newform.lstb1 とは何ですか?  > そのあたりの定義が不明では答が出せないのですが。 そのあたりを詳しく書けませんか?
zeroyuta

2016/10/06 03:22

うまく動作できませんでした. ちゃんと自分のやりたいことを見直すために出直してきます. ありがとうございました.
guest

0

何も表示されないのはlstb1.Textに何も入ってないからでしょう
テキストボックスの入力値を取得したいんでしょうか?
それでしたら、ShowDialog()を追加してみては?

basic_pro newform = new basic_pro();
newform.ShowDialog(); //←追加
MessageBox.Show(newform.lstb1.Text);

投稿2016/10/06 02:31

dn315

総合スコア201

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

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

zeroyuta

2016/10/06 02:51

うまくいきませんでした.自分の説明不足かも知れないので改めて説明すると,今のコードの内容はフォーム1(basic_pro)のフォームが先に表示され,そのフォーム内のテキストボックスに値を入力して,作ったボタンを押すと,フォーム2(basic_pro)が表示され,そのフォームで作ったボタンを押すと,前のフォームの値がテキストボックスに表示されるようにしたいのですが,追加のコードを入れるとフォーム1が表示され,ボタンを押すとフォーム2が表示され,そのフォームのボタンを押すとフォーム1が表示されるループになってしまいます. (2つのフォームのコードを改めて投稿したほうがいいですか?)
dn315

2016/10/06 03:04

TextBoxをpublicにするのではなく、プロパティを作ったほうがいいです 下記のプロパティを追加し public string InputText { get { return lstb1.Text; } set { lstb1.Text = value; } } 下記を追加してみて下さい。 basic_pro newform = new basic_pro(); newform.InputText = this.InputText; //←追加
zeroyuta

2016/10/06 03:23

うまく動作できませんでした. ちゃんと自分のやりたいことを見直すために出直してきます. ありがとうございました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問