C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■91279 / 1階層)  変数について
□投稿者/ 魔界の仮面弁士 (2201回)-(2019/06/10(Mon) 15:16:19)
No91275 (まどか さん) に返信
> フォーム1とフォーム2を用意し、
> フォーム2で変数をパブリック宣言して、
> フォーム1でその変数に値を代入してフォーム2でその値を使いたいのですが、上手くいきませんでした。

他のフォームの Public メンバーにアクセスするためには、
「フォーム変数.Atai = 」のようにして、
どのフォームインスタンスの Atai なのかを指定せねばなりません。



Public Class Form2
  Public Atai As String
  Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    '自分自身のメンバーにアクセスする場合は、
    '「Atai = 」でも「Me.Atai = 」でも構わない
    Me.Atai = Now.ToString("HH:mm:ss.fff")
    Me.Text = Atai
  End Sub
End Class



Public Class Form1
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Form2 から Atai を読み取る
    Button1.Text = "既定の Form2 インスタンスから読み取り"
    Button2.Text = "全ての Form2 インスタンスから読み取り"

    'Form2 を起動する
    Button3.Text = "既定の Form2 インスタンスから表示(一つのみ)"
    Button4.Text = "Form2 インスタンスを明示的に作成して表示(幾つでも)"

    'Button3 を 2 回押したことにする
    Button3.PerformClick()
    Button3.PerformClick()
  End Sub

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    MsgBox("既定の Form2 インスタンスの Atai =" & My.Forms.Form2.Atai)
  End Sub

  Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim title As String = "Form2 の数:" & Application.OpenForms().OfType(Of Form2)().Count
    For Each f2 In Application.OpenForms().OfType(Of Form2)()
      MsgBox(f2.Text & "の Atai =" & f2.Atai, MsgBoxStyle.Information, title)
    Next
  End Sub

  'このボタンを何度押しても、Form2 は一つだけしか表示されない
  Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    '既定のフォームインスタンスを使う場合(何度ボタンを押してもフォームは1つ)
    If Not Form2.Visible Then
      Form2.Show(Me)
    End If
    'MsgBox("既定の Form2 インスタンスの Atai =" & Form2.Atai)
  End Sub

  'このボタンを押すたびに、表示される Form2 が増えていく
  Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    'フォームのインスタンスを明示的に作成する場合
    Dim f As New Form2()
    f.Show(Me)
    'MsgBox("今起動したフォームの Atai =" & f.Atai)
  End Sub
End Class
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←変数について /まどか 返信無し
 
上記関連ツリー

変数について / まどか (19/06/10(Mon) 14:42) #91275
変数について / 魔界の仮面弁士 (19/06/10(Mon) 15:16) #91279 ←Now
Re[1]: 変数について / まどか (19/06/10(Mon) 14:55) #91277 解決済み
  └ Re[2]: 変数について / WebSurfer (19/06/10(Mon) 15:01) #91278

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信