Top > プログラミング > .NET Tips> 別のフォームのデータを取得、設定する

別のフォームのデータを取得、設定する」への評価、コメント

評価

良い / 悪い = 125 / 66 (「良い」の割合 = 0.654 , 人気度 = 1.492

評価する

コメント一覧


評価の理由
2021/12/19 (Sun) 15:04:22
評価:良い
分かりやすいことで理解もしやすかった。成功することができ助かりました。

通常のコメント
ふじこ 2021/03/29 (Mon) 10:20:16
いつもお世話になっております

> なぜ「_Form1Instance」のようにアンダーバーを付けているんですか。

アンダーバーを付ける必要があるわけではないですが、プロパティの内部保持をする変数にこのような名前を付ける場合が多いです


>「_(アンダーバー)」がなくなっているのはなんでなんでしょうか。

それは別のクラスに書いてあるはずですから、プライベートな「_form1Instance」を参照していないと思いますので、「なくなっている」わけではなさそうです

通常のコメント
かけだし 2021/03/28 (Sun) 18:10:11
初心者です。基本的なこともあまり分かっていませんが1点質問させてください。
所見の時はサッパリ分からなかったこの記事ですが、最近では少し理解できている
気になってきています。しかし、細かなことが気になってしまいます。

'Form1オブジェクトを保持するためのフィールド
Private Shared _form1Instance As Form1
と宣言しているのに、のちに
'Form1Instanceに代入
Form1.Form1Instance = f
と、「_(アンダーバー)」がなくなっているのはなんでなんでしょうか。

通常のコメント
かけだし 2021/03/27 (Sat) 20:21:02
初心者なので細かいところが気になってしまいます。なぜ「_Form1Instance」のようにアンダーバーを付けているんですか。

通常のコメント
匿名 2020/01/26 (Sun) 03:06:30
目的と方法が簡潔かつ具体的に書かれており、非常にかわかりやすいと思います。
勉強になりました。感謝します。

評価の理由
moruxa 2018/07/17 (Tue) 10:57:24
評価:良い
大変助かりました。
おかげさまで共有メソッドからフォーム上のテキストボックスにアクセスできるようになりました。
どうもありがとうございました。

評価の理由
匿名 2017/12/6 (Wed) 13:51:40
評価:悪い
初心者にはわかりにくい
別の掲示板の下記5行で直感的に理解できた。

Form1とForm2が親子関係(Form2はForm1から呼び出される)場合、Showする前に、必要な情報を渡すのが一般的です。

Dim hForm2 As New Form2()
hForm2.count = Me.cout
hForm2.ShowDialog()

評価の理由
匿名 2016/12/6 (Tue) 14:35:46
評価:良い
ユーザーコントロールでも使えました。大変助かりました。

評価の理由
匿名 2016/07/21 (Thu) 11:46:47
評価:良い
うまくいきました!本当にありがとうございます!

評価の理由
つらい 2015/06/29 (Mon) 17:31:08
評価:悪い
わかりません。

通常のコメント
管理人 2015/02/1 (Sun) 01:00:26
> これうまくいかないですね
> インスタンスには格納されていることは確認できるのですが、たとえばフォームのテキストボックスへの表示ができていない。

「フォームのテキストボックスへの表示ができない」というのは、「Form1.Form1Instance.TextBoxText = "こんにちは。"」としてもテキストボックスに「こんにちは。」と表示されないということでしょうか?もしそうであれば、Form1クラスに作成したTextBoxTextプロパティに間違いがないか確認してみてください。

通常のコメント
匿名 2015/01/31 (Sat) 01:59:43
これうまくいかないですね
インスタンスには格納されていることは確認できるのですが、たとえばフォームのテキストボックスへの表示ができていない。

通常のコメント
おすか 2015/01/14 (Wed) 16:51:00
アンマネージのコードからマネージの関数呼び出しができず大変困っていたのですが、教授いただいた方法でうまくいきました。ありがとうございます。マネージオブジェクト(this)をstatic変数に保持しておいて、static関数で読みに行くって目からウロコでした。今後もよろしくお願いします。

評価の理由
ナナシ 2014/11/24 (Mon) 11:12:18
評価:悪い
理解不能…

通常のコメント
kitamura 2014/07/2 (Wed) 12:15:19
(FormSelect^)Application::OpenForms["FormSelect"])という方法をC++/CLIでつかえた。C#もいける?

通常のコメント
管理人 2014/05/10 (Sat) 01:32:11
下に紹介させていただくコメントは、

http://dobon.net/vb/dotnet/datagridview/dataerror.html

に投稿されていたコメントですが、こちらに投稿するのが適当だと思いましたので、勝手ながらコピーさせていただきます。

----------
YKsaila 2014/05/7 (Wed) 18:07:58

評価:良い
お礼に、私のような初心者用にまとめておきました。誰かの役にたつかも?

フォーム「B」で入力・計算した値を、フォーム「A」のテキストボックスへ転記するコード:

'データ転記(方法1)--- ~.Form1Instance.TextBoxText関連コードは、 フォーム「A」に置く。
    ~.Form1Instanceを使用するやり方。
「A」.Form1Instance.TextBoxText = Me.~.Text 右辺は、フォーム「B」内のtextboxの値

'データ転記(方法2)-- フォーム「A」内のコマンドボタン内のコードに、F.Owner = Meとしておく。F.Show()の前後。
  F.Owner = Meを使用するやり方(上記コードでのF:フォーム「B」 / Me:フォーム「A」)
    下記コードを、フォーム「B」内の”転記”ボタンコード内に書く。
DirectCast(Me.Owner,フォーム「A」のフォーム名).TextBoxText = Me.TX_~.Text 右辺は、フォーム「B」内のtextboxの値

 どちらにも、下記(*3)は必要! <Propertyを事前に作成しておく>
(方法2)のほうが、簡単。

'(*3)-- 具体的な個別のテキストボックス値を取得、設定するためのプロパティ;  フォーム「A」内に書いておく。
Public Property TextBoxText() As String
Get
Return TX_ValuePrice.Text
End Get
Set(ByVal Value As String)
TX_ValuePrice.Text = Value
End Set
End Property

評価の理由
YKsaila 2014/05/7 (Wed) 17:45:52
評価:良い
役に立ちました! ありがとうございました。
Public Property TextboxText() As Stringが、盲点でした。 
このProperty設定のおかげで、
DirectCast(Me.Owner, Form1).TextBoxText = Me.TX_~.Textが使用できるようになり、他のフォームへの転記ができました。

評価の理由
Sun 2014/05/2 (Fri) 10:08:20
評価:良い
わかりやすい。

通常のコメント
匿名 2014/04/22 (Tue) 04:25:16
何度挑戦しても分かりませんでした
おそらく私が悪いのでしょう

評価の理由
as 2014/02/13 (Thu) 12:34:18
評価:良い
コントロールを別フォームに渡すこともできますね。
おもしろいです。参考になりました。

評価の理由
匿名 2014/02/6 (Thu) 16:54:52
評価:悪い
わけわかんねえよボケ

評価の理由
suwa 2013/08/1 (Thu) 15:16:14
評価:良い
別フォームへ変数が受け渡しできました!
ありがとうございました!

通常のコメント
匿名 2013/07/12 (Fri) 14:28:25
すみません。
で、結局、Form1クラス、Form2クラスそれぞれの構成がどうなっているのか教えて頂けないでしょうか。全体感が把握できていないので、パーツごとに説明されてもちんぷんかんぷんなんです。そこが分かれば、皆さんが仰るように多分こちらの説明は凄く分かりやすいんだと思うのです。

通常のコメント
管理人 2012/04/17 (Tue) 00:30:03
> Fomr2になっていますが
> Form2ではないでしょうか?

説明文中に1箇所Fomr2になっているところがありました。修正しておきます。ご報告ありがとうございました。

評価の理由
ktkr708 2012/04/14 (Sat) 07:48:43
評価:良い
Fomr2になっていますが
Form2ではないでしょうか?

評価の理由
おっさんで初心者 2011/04/14 (Thu) 10:06:22
評価:良い
すみませんが
正直、私には本文の意味は未だ理解できません。

しかし、内容を理解せずとも上記のサンプルコードを
真似る事により、実装出来ました。

「習うより、慣れろ」で理解出来る様にしたいと思いました。

心より感謝申し上げます。

評価の理由
Moo 2011/03/2 (Wed) 05:51:45
評価:良い
全体的に説明とソースの量のバランスが素晴らしいです。

評価の理由
abc-rex 2011/01/20 (Thu) 11:43:06
評価:良い
わかりやすい説明でした。

通常のコメント
管理人 2010/09/4 (Sat) 01:58:23
> "this.form2Instance.TextBoxText"は"this.form2Instance.textBox1.Text"の間違いではありませんか?

これはこれで合っています。「インスタンスを作成したときに、フィールドに代入しておく」の説明にあるように、これはTextBoxTextプロパティにアクセスする方法ですので、これで正しいです。textBox1.Textに直接アクセス出来るのであれば、Reiさんの方法でも可能です。説明が分かりにくかったのかもしれませんね。

> 私が間違っていたらすみません。

怪しい箇所がありましたら、これからもお願いいたします。

通常のコメント
Rei 2010/09/3 (Fri) 14:01:40
いつもお世話になってます。

ソースコードについてなのですが、
**************************************************
//Form2のTextBox1.Textの値を取得
string str = this.form2Instance.TextBoxText;

//Form2のTextBox1.Textの値を設定
this.form2Instance.TextBoxText = "こんにちは。";
***************************************************
上記部分の"this.form2Instance.TextBoxText"は"this.form2Instance.textBox1.Text"の間違いではありませんか?
私が間違っていたらすみません。

評価の理由
ささ 2010/07/22 (Thu) 18:06:06
評価:良い
分かりやすい解説でした。ありがとうございました。

評価の理由
ごはんの時間 2010/03/25 (Thu) 10:03:25
評価:良い
C#初心者です。困っていたので助かりました。
ありがとうございます。

評価の理由
RocLinkSee 2010/01/5 (Tue) 16:01:46
評価:良い
役に立ったので、たすかりました。

評価の理由
夏の朝も天玉うどん 2009/11/21 (Sat) 16:24:40
評価:良い
VS2003からVS2008への移植で非常に役に立ちました。
感謝いたします。

評価の理由
Aqua 2009/10/22 (Thu) 05:46:02
評価:良い
勉強になりました。
状況に応じて使い分けたいと思います。

評価の理由
asuka 2009/10/9 (Fri) 11:34:28
評価:良い
非常に解りやすく助かってます

通常のコメント
みく 2009/07/15 (Wed) 14:02:42
すごいわかることに気づき、いささか感心したものです。

評価の理由
LukeShort 2009/04/7 (Tue) 22:26:49
評価:良い
説明とサンプルソースのバランスが良いので理解しやすかったです。ありがとうございました。

評価の理由
Dis2 2009/03/17 (Tue) 23:36:04
評価:良い
私のやりたいことが出来ました。
プログラマー駆け出し一年目ですが、今だ開発業務に携われておらず、自己でスキルアップのため勉強しております。
本当に助かります。

通常のコメント
mgk 2008/10/14 (Tue) 16:59:11
コードをどちらのformに書けばいいかわかりませんでした。

通常のコメント
Kin 2008/10/2 (Thu) 09:29:39
大変参考いたしました。達人ですね。

通常のコメント
beginner 2008/07/25 (Fri) 10:51:09
何回やってもわかりません…。たぶん初心者の僕が悪いのでしょう。

3.Form1クラスのインスタンスを作成した時に、そのForm1クラスのインスタンスを先ほど作成した静的プロパティに代入します。

↑たぶん1で作成したコードの中だと思うのですが
静的プロパティというのはどこを指しているのでしょうか。この部分だけわからなかったです。

評価の理由
coro 2007/04/20 (Fri) 16:52:10
評価:良い
C#を扱うのは初めてだったのですが、おかげさまでよいプログラムがかけました。分かりやすい説明でした。

評価の理由
おじゃる丸 2007/04/9 (Mon) 22:37:56
評価:良い
こちらのTipsと同じ事がしたくて(他のフォームのプロパティとメソッドにアクセスしたかったのです。)苦労しておりました。
「基本的な考え方」を参考に実装してうまくいきました。解説も分かり易かったです。

評価の理由
siriusu 2006/10/31 (Tue) 13:33:23
評価:良い
説明が分かりやかった。

評価の理由
take 2006/09/15 (Fri) 10:24:54
評価:良い
いつも拝見させていただいています。
非常に助かりました。ありがとうございした。

通常のコメント
匿名 2006/06/26 (Mon) 18:54:00
よくわからない。

評価の理由
匿名 2006/03/20 (Mon) 14:03:06
評価:良い
参考にさせていただきました。

評価の理由
mmasai 2006/01/28 (Sat) 10:52:59
評価:良い
別フォームの値取得はいろいろな本を探しましたが、全然見つからなかったです。ここに来てやっと理解できました。

評価の理由
匿名 2005/09/7 (Wed) 13:04:09
評価:良い
複数フォームのデータの取得ができなかったが、サンプルコードを参考にしたところ、データの取得ができた。

コメントの投稿

[説明]