- いも
- 常連さん
- 会議室デビュー日: 2003/03/16
- 投稿数: 37
|
投稿日時: 2005-12-29 16:35
表示されているForm1のボタンクリックでForm2を表示したのですが、Form2のテキストボックスの値を今度はForm2のボタンクリックでForm1のテキストボックスに渡したいです。すでに表示されているForm1でForm2のテキストボックスの値は利用できるのでしょうか。
|
- なおこ(・∀・)
- 大ベテラン
- 会議室デビュー日: 2004/04/08
- 投稿数: 174
- お住まい・勤務地: 東京都
|
投稿日時: 2005-12-29 16:51
お世話になります。
引用: |
|
いもさんの書き込み (2005-12-29 16:35) より:
表示されているForm1のボタンクリックでForm2を表示したのですが、Form2のテキストボックスの値を今度はForm2のボタンクリックでForm1のテキストボックスに渡したいです。すでに表示されているForm1でForm2のテキストボックスの値は利用できるのでしょうか。
|
ShowDialog で表示しているなら、
Me.Owner で Form1 のインスタンスがとれるので、
Form1 にキャストして、
Form1 に引数としてもらった文字を テキストボックスに表示するメソッドを用意し、
Form2 から呼んでやればよいのでは。
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2005-12-29 17:36
「Form1のお仕事」:Form2 のインスタンスを作る
「Form1のお仕事」:Form2 を表示
「Form2のお仕事」:Form2 で値を入力してもらう
「Form2のお仕事」:Form2 の公開プロパティに値をセットする
「Form2のお仕事」:From2 を閉じる
「Form1のお仕事」:Form2 でセットしたプロパティから値を取得する
「Form1のお仕事」:Form2 を破棄する
[ メッセージ編集済み 編集者: かるあ 編集日時 2005-12-29 17:36 ]
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2005-12-29 18:32
引用: |
|
いもさんの書き込み (2005-12-29 16:35) より:
表示されているForm1のボタンクリックでForm2を表示したのですが、
Form2のテキストボックスの値を今度はForm2のボタンクリックで
Form1のテキストボックスに渡したいです。
|
以前、貴方が質問された、
フォーム間で値を引き渡したい
とイメージは同じです。(タイミングが違うだけ)
引用: |
|
すでに表示されているForm1でForm2のテキストボックスの値は利用できるのでしょうか。
|
とは言っても、表示する側と表示される側がある以上は「親子関係」があります。
なおこさんの方法より、かるあさんの方法が望ましいです。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- いも
- 常連さん
- 会議室デビュー日: 2003/03/16
- 投稿数: 37
|
投稿日時: 2005-12-29 20:24
自分でいくら考えても駄目だったのにできました!
本当にありがとうございます。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2005-12-29 22:48
引用: |
|
いもさんの書き込み (2005-12-29 20:24) より:
自分でいくら考えても駄目だったのにできました!
本当にありがとうございます。
|
どうやって解決したのかが判らないです。
推奨される方法で書いておきます。
VB.NET で良いのかな。
コード: |
|
Option Strict On
Public Class Form1 : Inherits System.Windows.Forms.Form
[ Windows フォーム デザイナで生成されたコード ]
#Region " Form2 を表示するボタン "
Private Sub btnShowForm2_Click(...) Handles btnShowForm2.Click
Dim oForm2 As New Form2()
Try ' Form2 で [OK] ボタンが押下された場合のみ OneValue を表示
If oForm2.ShowDialog() = DialogResult.OK Then
' Form2 の OneValue に格納された値を取得
Dim stOneValue As String = oForm2.OneValue
MessageBox.Show(stOneValue)
End If
Finally
' oForm2 の破棄
If Not oForm2 Is Nothing Then
oForm2.Dispose()
End If
End Try
End Sub
______________________________________________________________________
Option Strict On
Public Class Form2 : Inherits System.Windows.Forms.Form
[ Windows フォーム デザイナで生成されたコード ]
#Region " OneValue プロパティ "
' Form1 から取得したいデータ
Private _OneValue As String
Public ReadOnly Property OneValue() As String
Get
Return Me.TextBox1.Text
End Get
End Property
#End Region
#Region " [OK] ボタン "
' [OK] ボタンとする
Private Sub btnOK_Click(...) Handles btnOK.Click
Me._OneValue = "この値が欲しいので設定する"
Me.DialogResult = DialogResult.OK
End Sub
#End Region
End Class
|
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|