回答編集履歴

3

修正

2018/09/26 00:25

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
@@ -96,7 +96,7 @@
96
96
 
97
97
 
98
98
 
99
- public Form justOyaForm
99
+ public OyaForm justOyaForm
100
100
 
101
101
  {
102
102
 

2

修正

2018/09/26 00:25

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  KoForm koForm = new KoForm();
68
68
 
69
- KoForm.justOyaForm = this;
69
+ koForm.justOyaForm = this;
70
70
 
71
71
  koForm.Show();
72
72
 

1

追記

2018/09/26 00:01

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
@@ -5,3 +5,125 @@
5
5
 
6
6
 
7
7
  これをしているならそれが原因です。
8
+
9
+
10
+
11
+ #追記
12
+
13
+
14
+
15
+ 次を試してください。
16
+
17
+ まず、oyaBox が private だと思うので、外からは oyaBox にアクセスできないはずです。
18
+
19
+ そこで public プロパティからテキストにアクセスできるようにしました。
20
+
21
+ 次に、KoForm のインスタンスを作成した後に自身のインスタンスを渡すようにしました。
22
+
23
+ それから、oyaForm のインスタンスが無駄に複数作成されていたのを削除しました。
24
+
25
+ 最後に、sKoText を oyaBox.Text ではなく先ほど作った oyaBoxText に代入するよう変更しました。
26
+
27
+
28
+
29
+ ```C#
30
+
31
+ // 親フォームは以下のコード
32
+
33
+ namespace FormsApp
34
+
35
+ {
36
+
37
+ public partial class OyaForm : Form
38
+
39
+ {
40
+
41
+ public OyaForm()
42
+
43
+ {
44
+
45
+ InitializeComponent();
46
+
47
+ }
48
+
49
+
50
+
51
+ public string oyaBoxText
52
+
53
+ {
54
+
55
+ get { return oyaBox.Text; }
56
+
57
+ set { oyaBox.Text = value; }
58
+
59
+ }
60
+
61
+
62
+
63
+ private void oyaButton_Click(object sender, EventArgs e)
64
+
65
+ {
66
+
67
+ KoForm koForm = new KoForm();
68
+
69
+ KoForm.justOyaForm = this;
70
+
71
+ koForm.Show();
72
+
73
+ }
74
+
75
+ }
76
+
77
+ }
78
+
79
+
80
+
81
+ // 子フォームには以下のコード
82
+
83
+ private Form oyaForm;
84
+
85
+ private string sKoText = "";
86
+
87
+
88
+
89
+ public KoForm()
90
+
91
+ {
92
+
93
+ InitializeComponent();
94
+
95
+ }
96
+
97
+
98
+
99
+ public Form justOyaForm
100
+
101
+ {
102
+
103
+ get { return oyaForm; }
104
+
105
+ set { oyaForm = value; }
106
+
107
+ }
108
+
109
+
110
+
111
+
112
+
113
+ private void koButton_Click(object sender, EventArgs e)
114
+
115
+ {
116
+
117
+ if (koBox.Text != "")
118
+
119
+ {
120
+
121
+ sKoText = koBox.Text;
122
+
123
+ justOyaForm.oyaBoxText = sKoText; // ここがエラーとなって、コンパイルできません。
124
+
125
+ }
126
+
127
+ }
128
+
129
+ ```