DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

Moduleから呼び出したFormに書き込みをする場合

500P<可

他のフォームを開くことは過去ログ&TIPSを参考にしてできたのですが。
Module1 から Form1 を呼び出し更に、Form1のラベルのプロパティを変え
ようとしたところうまくいきませんでした。

Module1から実行するように設定しました。

"Form1" には "Label1"があります。

---------------------------------
Module Module1
Public f As Form1
Public Sub Main()
f = New Form1()
f.ShowDialog()
Call sLabel
end sub

Public Sub sLabel()
f.Label1.Text = "hogehoge"
end sub
----------------------------------

よろしくお願いいたします。
>他のフォームを開くことは過去ログ&TIPSを参考にしてできたのですが。
>Module1 から Form1 を呼び出し更に、Form1のラベルのプロパティを変え
>ようとしたところうまくいきませんでした。

Label1の参照範囲をPublicにすればOKです。プロパティウィンドウのModifiersを変更してください。

しかしこのようにコントロールをPublicにするのが本当にいい方法かといえば、ちょっと考えます。Form1にPublicのプロパティを作ったほうがよさげですが、面倒ですね。
>しかしこのようにコントロールをPublicにするのが本当にいい方法かといえば、ちょっと考えます。Form1にPublicのプロパティを作ったほうがよさげですが、面倒ですね。

プロパティに書き込むことはできました・・・が、

f.ShowDialog()
を実行してしまうと、その後は一度閉じて再度
f.ShowDialog()
を実行するまで画面内の文字が変わりません。

いろいろ、探したらMe.Refresh()がありました。

これで、解決しました、ありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板