回答編集履歴

2

StockCount を修正

2022/07/11 19:02

投稿

KOZ6.0
KOZ6.0

スコア2628

test CHANGED
@@ -37,12 +37,15 @@
37
37
  Public Class ChildForm
38
38
 
39
39
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
40
+ _StockCount = NumericUpDown1.Value
40
41
  DialogResult = DialogResult.OK
41
42
  End Sub
42
43
 
44
+ Private _StockCount As Decimal
45
+
43
46
  Public ReadOnly Property StockCount As Decimal
44
47
  Get
45
- Return NumericUpDown1.Value
48
+ Return _StockCount
46
49
  End Get
47
50
  End Property
48
51
 

1

反応がないのでサンプルを書いておきます

2022/07/11 17:10

投稿

KOZ6.0
KOZ6.0

スコア2628

test CHANGED
@@ -6,3 +6,46 @@
6
6
  たとえば、子画面が親画面を更新するなら、親画面のインスタンスを子画面が知ってなきゃいけないよねーとか、ListBox に表示するための商品名も渡さなきゃいけないねーとか。
7
7
  きちんと設計できれば書かなければいけないコードが見えてくるはずです。
8
8
 
9
+ # 追記
10
+ 反応がないのでサンプルを書いておきます。(^_^;)
11
+
12
+ ・親画面からは何も渡しません。
13
+ ・子画面からは NumericUpDown に入力された値を返します。
14
+ ・ListBox の更新は親が行います。
15
+
16
+ ```VB
17
+ ' 親画面
18
+ Public Class ParentForm
19
+
20
+ Private Sub ParentForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
21
+ PictureBox1.Tag = "商品001" ' 商品名を Tag プロパティにセットする
22
+ PictureBox1.Image = Image.FromFile("test.bmp")
23
+ End Sub
24
+
25
+ Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
26
+ Dim pbox As PictureBox = DirectCast(sender, PictureBox)
27
+ Using child As New ChildForm()
28
+ If child.ShowDialog() = DialogResult.OK Then
29
+ ListBox1.Items.Add(String.Format("{0} x {1}", pbox.Tag, child.StockCount))
30
+ End If
31
+ End Using
32
+ End Sub
33
+
34
+ End Class
35
+
36
+ ' 子画面
37
+ Public Class ChildForm
38
+
39
+ Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
40
+ DialogResult = DialogResult.OK
41
+ End Sub
42
+
43
+ Public ReadOnly Property StockCount As Decimal
44
+ Get
45
+ Return NumericUpDown1.Value
46
+ End Get
47
+ End Property
48
+
49
+ End Class
50
+ ```
51
+