回答編集履歴

1

追記

2021/03/11 02:22

投稿

退会済みユーザー
test CHANGED
@@ -3,3 +3,199 @@
3
3
 
4
4
 
5
5
  Shuku_T というのはユーザーコントロールに配置した TextBox への参照らしいので、上のコードのようにそれに文字列を代入することはできませんが、とりあえずそこは置いといて、Shuku_T.Text プロパティにアクセスできれば良いということなら、それにアクセスするパブリックプロパティをユーザーコントロールのコードビハインドに定義して、それ経由でアクセスしてはいかが?
6
+
7
+
8
+
9
+ **【追記】**
10
+
11
+
12
+
13
+ 下のコメント欄で「プロパティの書き方を回答欄に追記しておくので見てください」と書いた件です。これが質問者さんのやりたいことと違う場合は、具体的に、ここに書いてあること以外は何も知り得ない他人が読んで分かるように、コメント欄にどう違うのかを書いてください。
14
+
15
+
16
+
17
+ **.ascx**
18
+
19
+
20
+
21
+ 例えば以下のような TextBox を含むユーザーコントロールがあって、それを使う .aspx ページからコードビハインドで TextBox1.Text に文字列を設定する場合、
22
+
23
+
24
+
25
+ ```
26
+
27
+ <%@ Control Language="C#" AutoEventWireup="true"
28
+
29
+ CodeBehind="WebUserControl1.ascx.cs"
30
+
31
+ Inherits="WebApplication1.WebUserControl1" %>
32
+
33
+
34
+
35
+ <h3>WebUserControl1</h3>
36
+
37
+
38
+
39
+ <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
40
+
41
+ <asp:Button ID="Button1" runat="server" Text="Button" />
42
+
43
+ ```
44
+
45
+
46
+
47
+ **.ascx.cs**
48
+
49
+
50
+
51
+ ユーザーコントロールのコードビハインドで TextBox1.Text プロパティにアクセスするパブリックプロパティを以下のように定義して、
52
+
53
+
54
+
55
+ ```
56
+
57
+ using System;
58
+
59
+
60
+
61
+ namespace WebApplication1
62
+
63
+ {
64
+
65
+ public partial class WebUserControl1 : System.Web.UI.UserControl
66
+
67
+ {
68
+
69
+ //
70
+
71
+ public string TextBoxText
72
+
73
+ {
74
+
75
+ get
76
+
77
+ {
78
+
79
+ return TextBox1.Text;
80
+
81
+ }
82
+
83
+ set
84
+
85
+ {
86
+
87
+ TextBox1.Text = value;
88
+
89
+ }
90
+
91
+ }
92
+
93
+ }
94
+
95
+ }
96
+
97
+ ```
98
+
99
+
100
+
101
+ **.aspx**
102
+
103
+
104
+
105
+ .aspx ページにはそのユーザーコントロールを普通に、以下のように配置し、
106
+
107
+
108
+
109
+ ```
110
+
111
+ <%@ Page Language="C#" AutoEventWireup="true"
112
+
113
+ CodeBehind="WebForm20.aspx.cs"
114
+
115
+ Inherits="WebApplication1.WebForm20" %>
116
+
117
+
118
+
119
+ <%@ Register TagPrefix="uc" Src="~/WebUserControl1.ascx"
120
+
121
+ TagName="MyControl" %>
122
+
123
+
124
+
125
+ <!DOCTYPE html>
126
+
127
+
128
+
129
+ <html xmlns="http://www.w3.org/1999/xhtml">
130
+
131
+ <head runat="server">
132
+
133
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
134
+
135
+ <title></title>
136
+
137
+ </head>
138
+
139
+ <body>
140
+
141
+ <form id="form1" runat="server">
142
+
143
+ <div>
144
+
145
+ <uc:MyControl ID="myControl" runat="server" />
146
+
147
+ </div>
148
+
149
+ </form>
150
+
151
+ </body>
152
+
153
+ </html>
154
+
155
+ ```
156
+
157
+
158
+
159
+ **.aspx.cs**
160
+
161
+
162
+
163
+ 上の .aspx ページのコードビハインドで、上に定義したユーザーコントロールのプロパティに以下のようにアクセスして文字列を設定できます。
164
+
165
+
166
+
167
+ ```
168
+
169
+ using System;
170
+
171
+
172
+
173
+ namespace WebApplication1
174
+
175
+ {
176
+
177
+ public partial class WebForm20 : System.Web.UI.Page
178
+
179
+ {
180
+
181
+ protected void Page_Load(object sender, EventArgs e)
182
+
183
+ {
184
+
185
+ myControl.TextBoxText = "BBB";
186
+
187
+ }
188
+
189
+ }
190
+
191
+ }
192
+
193
+ ```
194
+
195
+
196
+
197
+ **結果は**
198
+
199
+
200
+
201
+ ![イメージ説明](e9a612e38b24cd566d13bcaed9d0c3b4.jpeg)