ここから本文です

VB.NET2003で、フォーム2のtextboxの値をメインフォームのフォーム1のlabelに表示...

kam********さん

2011/12/713:13:11

VB.NET2003で、フォーム2のtextboxの値をメインフォームのフォーム1のlabelに表示させる方法を教えてください。

前バージョンでは、モジュールを追加しそこに「Pubric Form As Form1」を記述し、Form2のButton_Clickイベントに
「Form.Label1.Text = TextBox1.Text」と記述するとフォーム1のラベルに値が表示されたのですが、今回はうまくいきません。 よろしくお願いします。

閲覧数:
665
回答数:
3
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

編集あり2011/12/718:38:33

VB.NET2003では、「Formの暗黙的なインスタンス化」が出来ないので、ちゃんとインスタンスを渡す必要があるのです。
VB.NET2005から、また、出来る様になってます。(2003では、Form2.Show()こういうのは、出来ません)

モジュールを追加しそこに「Public Form As Form1」としてるなら、そこへ、Form1のインスタンスを渡して上げればよい。

'↓モジュール

Module Module1
Public Form As Form1
End Module

'↓Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Module1.Form = Me
End Sub

'↓Form2

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Module1.Form.Label1.Text = Me.TextBox1.Text
End Sub

分かりやすくこうしましたが、VB.NETは、オブジェクト指向よりなので、こんなコーディングは本来お勧め出来ません。機会があれば、きっちと、VB.NETを学び直した方がいいかと思います。

「追記」

f.Owner = Me

でも、OKだけど、Form2のTextBox1_TextChangedイベントとかだと、先にイベントが走って、f = Me.Ownerがnothingでエラーになりますよ。Form2が表示された後で、起こすイベントButton1_Clickなどなら、OK。もしくは、nothingチェック。まぁ。用途に合わせて選択して下さいませ。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

yns********さん

編集あり2011/12/719:43:50

こんにちわ ^o^

'■Form1内の Form2を表示させる イベントプロシージャ内に
'_(例えば Form1_Loadイベントプロシージャ内)

Dim f As New Form2
f.Owner = Me '★Form2.OwnerプロパティにFrom1をセット
f.Show()

'として,Form2を表示させ.




'●Form2内 のButton_Clickイベントプロシージャ内に

Dim f As Form1
f = Me.Owner
f.Label1.Text = Me.TextBox1.Text

'で できませんかね?


----- 追記

mikewanko2さんの追記から
ということは


'●Form2のクラスレベルであらかじめ

Private f As Form1
f = Me.Owner

'で宣言しておいて

'●Form2内 のButton_Clickイベントプロシージャ内に

f.Label1.Text = Me.TextBox1.Text

'の要領であれば,どのイベントでもOKということですかな.

iwa********さん

編集あり2011/12/714:49:14

そんなに違うのですね。。
すみませんでした。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる