掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

Top Index

2005年03月31日
フォーム間での値のやり取り モーダルフォーム編
検索フォームを作る場合など、フォーム間で変数、クラスをやり取りする必要があります。
こちらのサンプルを作ってみました。
以下のサンプルでは、
・Form1のTextBox1の値をForm2へ渡す
・Form2を開き、受け取った値を編集
・Form2をOKボタンを押して閉じる
・Form1よりForm2で変更された値を受け取る
を行っています。
(2005/04/06 Form2にOK、Cancelボタンを配置し、OKボタンを押した場合のみ、編集値を受け取るように変更)


01Public Class Form1
02    Inherits System.Windows.Forms.Form
03
04#Region " Windows フォーム デザイナで生成されたコード "
78
79    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
80        Dim f As Form2 = New Form2(TextBox1.Text)   '値を渡す
81
82        'モーダル開き、戻り値を受け取る
83        If f.ShowDialog = DialogResult.OK Then
84            '値を受け取る
85            TextBox2.Text = f.GetValue
86        End If
87
88        f.Dispose()
89    End Sub
90End Class
 powered by vb2html ver2.1b


001Public Class Form2
002    Inherits System.Windows.Forms.Form
003
004#Region " Windows フォーム デザイナで生成されたコード "
077
078    'コンストラクタを用いて、値を受け取る
079    Public Sub New(ByVal Value As String)
080        ' この呼び出しは Windows フォーム デザイナで必要です。
081        InitializeComponent()
082
083        TextBox1.Text = Value
084    End Sub
085
086    'OKボタン
087    Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
088        Me.DialogResult = DialogResult.OK
089        Me.Close()
090    End Sub
091
092    'Cancelボタン
093    Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
094        Me.DialogResult = DialogResult.No
095        Me.Close()
096    End Sub
097
098    '値を渡すメソッド
099    Public Function GetValue() As String
100        Return TextBox1.Text
101    End Function
102End Class
 powered by vb2html ver2.1b


値を受け取る方法については、VB6の時と目立った変更はありませんが、値を渡す方法はVB6と異なります。

VB6の場合、コンストラクタに引数を指定できないので、例文のようにスッキリ書きにくいです。

VB.NETではコンストラクタに引数を持たせることが出来るので、こちらを利用して、必要な値(クラス)を渡せます。

他にも方法があるとは思います(イベントを使うとか?)が、一般的にはコレが一番無難なところでしょうか?


余談
「コンストラクタに引数が使える」って、すごく便利ー
[ 投稿者:mk3008 at 01:55 | フォームTips | コメント(0) | トラックバック(1) ]

この記事へのコメント

この記事へのトラックバック
2フォーム間で値をやり取りする モードレスフォーム編
前回は、モードダルフォームでの変数のやり取りを試してみました。これは主に検索フォームなどで利用できると思います。...
投稿者: VB.NETで作る! at 2005-04-07 00:10:20

この記事へのトラックバックURL
http://shinshu.fm/MHz/88.44/a03187/0000039564.trackback

この記事の固定URL
http://shinshu.fm/MHz/88.44/archives/0000039564.html

記事へのコメント
 
簡単演算認証: 4 x 2 + 5 =
計算の答えを半角英数字で入力して下さい。
名前: [必須]
URL/Email:
タイトル:
コメント:
※記事・コメントなどの削除要請はこちら