§3 複数のフォーム VB6 | |
(5) フォーム間のデータ受け渡し |
フォーム間でデータを受け渡しするには、標準モジュールの(General),(Declarations)でPublicキーワードを使って宣言すると、このプロジェクトの全てのモジュールで共通の変数が利用できる。(「(4)
変数の適用範囲 3. フォーム間で共通の変数」参照)
この方法では標準モジュールも追加する必要があり、その分、メモリも消費してしまう。ここでは、オブジェクトを利用する方法を説明する。
例5 例4のプログラムのForm1にテキストボックス1つ(Text1)を追加する。Form2にラベル1つ(Lable2)とコマンドボタン1つ(Command2)を追加する。
Form1のプログラムに変更はない。Form2のプログラムは次の通りである。
・Form2のプログラムリスト
Private Sub Command1_Click() Label1.Caption = a End Sub Private Sub Command2_Click() '←追加 Label2.Caption = Form1.Text1.Text '←追加 End Sub '←追加
実行結果
Form1の
ボタン1をクリックForm1の
ボタン2をクリックForm2の
ボタン1をクリックForm2の
ボタン2をクリック12345 12345 12345 Text1の内容
実行してForm2のボタン2をクリックすると、Form1のテキストボックスの内容が表示される。
通常、テキストボックスの内容はText1.Textで参照できるので、次のようにするとForm2にはテキストボックスがないのでエラーになる。
Label2.Caption = Text1.Text ←これはエラー
このようにオブジェクトが記憶しているデータ(プロパティ)はどこからでも参照することができる。ただし、別のフォームにあるオブジェクトの場合は、そのオブジェクトを持っているフォームも指定する必要がある。
Form1.Text1.Text
(1) (2) (3)(1) フォーム名
(2) オブジェクト名
(3) プロパティ名
(1)フォーム名、(2)オブジェクト名と(3)プロパティ名はピリオド(.)でつなぐ。
(1)フォーム名と(2)オブジェクト名はピリオドの代わりに感嘆符(!)でつなぐこともできる。
(5) フォーム間のデータ受け渡し | |
Copyright © 2002 Hiroshi Masuda |