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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.91275 の関連記事表示

<< 0 >>
■91275  変数について
□投稿者/ まどか -(2019/06/10(Mon) 14:42:34)

    分類:[.NET 全般] 

    VB.netで学習をしています。

    フォーム1とフォーム2を用意し、
    フォーム2で変数をパブリック宣言して、
    フォーム1でその変数に値を代入してフォーム2でその値を使いたいのですが、上手くいきませんでした。

    標準モジュールで宣言すると上手くいったのですが、出来ればフォーム2で宣言して使いたいのですがどうすればよいのでしょうか?


    <フォーム1>


    atai = "○○" ←ここで代入



    <フォーム2>

    Public atai As String

    -ロードイベント-
    TextBox1.Text = atai


    このように今は書いています。

    よろしくお願いします。
親記事 /過去ログ157より / 関連記事表示
削除チェック/

■91279  Re[1]: 変数について
□投稿者/ 魔界の仮面弁士 -(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
記事No.91275 のレス /過去ログ157より / 関連記事表示
削除チェック/

■91277  Re[1]: 変数について
□投稿者/ まどか -(2019/06/10(Mon) 14:55:48)
    No91275 (まどか さん) に返信
    > VB.netで学習をしています。
    >
    > フォーム1とフォーム2を用意し、
    > フォーム2で変数をパブリック宣言して、
    > フォーム1でその変数に値を代入してフォーム2でその値を使いたいのですが、上手くいきませんでした。
    >
    > 標準モジュールで宣言すると上手くいったのですが、出来ればフォーム2で宣言して使いたいのですがどうすればよいのでしょうか?
    >
    >
    > <フォーム1>
    >
    >
    > atai = "○○" ←ここで代入
    >
    >

    >
    > <フォーム2>
    >
    > Public atai As String
    >
    > -ロードイベント-
    > TextBox1.Text = atai
    >
    >
    > このように今は書いています。
    >
    > よろしくお願いします。
記事No.91275 のレス / END /過去ログ157より / 関連記事表示
削除チェック/

■91278  Re[2]: 変数について
□投稿者/ WebSurfer -(2019/06/10(Mon) 15:01:55)
    No91277 (まどか さん) に返信

    Form1 において Form2 を初期化して開くのであれば、Form2 のコンストラクタに
    String を引数に取るオーバーロードを追加して、そのコンストラクタを使って Form2
    を初期化するときに引数に atai を渡してやってはいかがですか?
記事No.91275 のレス /過去ログ157より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -