VB2005でフォーム1からフォーム2に変数を送るには?


さなぎちゃん  2009-05-27 18:57:03  No: 145939  IP: 192.*.*.*

フォーム1のリッチテキストボックスにある
数値を
フォーム2の変数に送りたいのですがどうしたら
いのでしょうか?
教えてもらえないでしょうか?

編集 削除
 2009-05-27 21:22:34  No: 145940  IP: 192.*.*.*

Form1にリッチテキストボックスの値を返すメソッドなりプロパティなりを実装すれば良いと思うよ。

編集 削除
 2009-05-29 12:03:22  No: 145941  IP: 192.*.*.*

もしくはForm2にプロパティを実装してForm1からセットするかだね。

編集 削除
うえ  2009-05-29 13:43:22  No: 145942  IP: 192.*.*.*

フォーム2.変数 = Val(フォーム1.リッチテキストボックス.Text)

編集 削除
incarnation  2009-06-14 14:25:51  No: 145943  IP: 192.*.*.*

dim 変数名 as 〜  じゃなくてPublic 変数名 as 〜 でいいんじゃないのかな?

編集 削除
オショウ  2009-06-14 21:20:19  No: 145944  IP: 192.*.*.*

方法はいくらでもありますが・・・

例えば
Form1/Form2 にRichTextBox1を貼って、ボタンも配置し・・・

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Using objForm As Form2 = New Form2
            Dim dRet As DialogResult
            With objForm
                .Tag = CType(RichTextBox1.Text, Object)
                dRet = .ShowDialog()
                If dRet = Windows.Forms.DialogResult.OK Then
                    RichTextBox1.Text = CType(.Tag, String)
                End If
            End With
        End Using

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Me.Close()

    End Sub

End Class

Public Class Form2

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        RichTextBox1.Text = CType(Me.Tag, String)

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        With Me
            .Tag = CType(RichTextBox1.Text, Object)
            .DialogResult = Windows.Forms.DialogResult.OK
            .Close()
        End With

    End Sub

End Class

フォームの生成に準じてTagで渡して、また戻してもらうとか。
何等かの処理判定で、DialogResultにOKか、以外かを返せば、
その結果を反映させるか破棄するかもできるし・・・

如何?

以上。

編集 削除