お世話になっております。
プログラム初心者のものですが、以前フォーム間の変数の受け渡しについて質問した際、YamaGNZさんに
「public property 〇〇 as string 」と宣言することを教わりました。
このページより→ https://teratail.com/questions/294325
どのクラスからでもアクセスできる?っぽいので、私はこの方法を多用していましたが、
ここにきて、なんでだろうということが起こっています。
public propertyを子フォーム→孫フォームと移していくのですが、最後のところで
messageBoxが空になるのです。
作っているコードは以下のようなものです。
Public class form1 'ここで宣言するtana_kigouを親フォーム→子フォーム→孫フォーム→ひ孫フォーム→玄孫フォーム→ '・・・→tuika_finalと移していく Public Property tana_kigou as string 'データベースに項目を追加するプログラム Private Sub b_tuika_Click(sender As Object, e As EventArgs) Handles b_tuika.Click Dim t As New tuika tuika_final.tana_f = tana_kigou MessageBox.Show(tuika_final.tana_f) t.ShowDialog(Me) t.Dispose() End Sub End class 'tuikaフォームを開く Public class tuika Private Sub b_tuika_Click(sender As Object, e As EventArgs) Handles b_tuika.Click Dim t1 As New tuika1 MessageBox.Show(tuika_final.tana_f) t1.ShowDialog(Me) t1.Dispose() End Sub End class 'tuika1フォームを開く Public class tuika1 Private Sub b_tuika_Click(sender As Object, e As EventArgs) Handles b_tuika.Click Dim t2 As New tuika2 MessageBox.Show(tuika_final.tana_f) t2.ShowDialog(Me) t2.Dispose() End Sub End class 'tuika2,3,4,5と同様・・・ '・・・ 'tuika_finalフォームを開く Public class tuika_final Public Property tana_f As String Private Sub tuika_final_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'ここでtana_fがなぜか空になる MessageBox.Show(Me.tana_f) End Sub End class
私のコードにつまらないミスがあればすみません。
まず、そもそもネット検索していたら、私が多用しているようなPublic propertyの使い方はどこにも書いておらず、以下のような書き方をしているものについて説明されているものしかなかったです。
参照: https://dobon.net/vb/dotnet/vb6/property.html
Public Property Number1() As Integer Get Return _number1 End Get Set(ByVal value As Integer) _number1 = value End Set End Property
私が使っている方法と比べると、tuika_finalフォームにPublic writeonly propertyを作って、
form1からSetすればよさそうな気もするのですが、私が使っている方法は何なのか、この記事を見てから
よくわからなくなってしまいました。
分かる方おられれば、ご教授いただければ幸いです。
以上、長文失礼しました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/28 08:30
2021/03/28 08:32
2021/03/28 08:37
2021/03/28 08:41
2021/03/28 08:48
2021/03/28 08:50
2021/03/28 09:03
2021/03/28 09:19
2021/03/28 10:39
2021/03/28 11:15
2021/03/28 11:49
2021/03/28 13:55