- 題名: 自作クラス内からFormのオブジェクトを参照したい
- 日時: 2005/01/13 10:28:02
- ID: 8376
- この記事の返信元:
- (なし)
- この記事への返信:
- [8377] Re[1]: 自作クラス内からFormのオブジェクトを参照したい2005/01/13 10:34:36
- ツリーを表示
こんにちは、じゃんぬねっと です。
■No8379に返信(あのねさんの記事)
> Newされている為か、TextBox1のデフォルトの値が出力されてしまいました^^;
> (変更後のTextが表示されない)
それは、先にも言ったように、同一インスタンスでないからですね。
> Form1のTextBox1.Textプロパティを参照したい・・・と思ったら、
> そ上のオブジェクト(Text1)のModifiersプロパティを"Friend"にする・・
> といった感じではないのでしょうか?
VB.NET ではデフォルトで Friend ですが、本来は Private にすべきでしょうね。
フォームもクラスであると考えれば、当然、プロパティでアクセスすべきでしょう。
何が、外部から参照されているかを明示化できるので、後から見てもわかりやすいです。
が、まあ、そういう固いのは抜きにして、まず解決させちゃいましょうか。
コードで説明した方がわかりやすいですね。
例えば、フォームが FormMain として、
あるモジュール [またはクラス] で、Friend メンバとして公開します。
※[ ] 内の記述は「Main」が Class である場合
Source:-------------------------------------------------
' Main モジュール [クラス]
Friend Module [Class] Main
Friend fFormMain As FormMain
' エントリ ポイント から FormMain を起動
Friend [Shared] Sub Main()
fFormMain = New FormMain
Application.Run(fFormMain)
End Sub
End Module [Class]
Source:-------------------------------------------------
' テスト用の Moo クラス
Public Class Moo
' ちょっとだけ fFormMain の Text を表示するメソッド
Private Sub ChottoDakeNoMethod()
MessageBox.Show(fFormMain.TextBox1.Text)
'[ MessageBox.Show(Main.fFormMain.TextBox1.Text) ]
End Sub
End Class
--------------------------------------------------------
これが 1 番簡単な方法だと思いますが、
クラスの関係 (仕様上の) が気になるようになると、
これで納得できないようになると思います (w
/***************************************************
* @Remarks じゃんぬねっと
* @Homepage http://f57.aaa.livedoor.jp/~jeanne/
* @Blog http://www.ailight.jp/blog/jeanne/
***************************************************/
分類:[.NET]
おはようございます。
このサイトに、いつもお世話になっています。
今日は質問したいことがあり、新しくスレッド作成させていただきました。
今回の質問とは、簡単に言うと、
『自分で作ったプロジェクト内のクラスから、
フォームに設置してあるオブジェクトのプロパティを参照できますか?』
です。
http://dobon.net/vb/dotnet/form/accessanotherformdata.html
を参考に試行錯誤してみたのですが、どうやら少し違うようです。
ラジオボタンやテキストボックスの値をクラス内で取得、使用したいのですが、
その実現方法のイメージすら沸きません^^;
Form1内の変数をForm2で参照・・・というのは多々見かけたのですが、
クラスからの参照、また、オブジェクトのプロパティを・・となると
探し出すことができませんでした。
解決に役立つヒントやサイト等を教えていただきたくて書き込みしました。
よろしくお願いします_(._.)_