質問するログイン新規登録

回答編集履歴

1

追記

2021/03/11 02:22

投稿

退会済みユーザー
answer CHANGED
@@ -1,3 +1,101 @@
1
1
  > uc1.Shuku_T = "BBB" <------ **プロテクトの為アクセスできません。 エラーになります。
2
2
 
3
- Shuku_T というのはユーザーコントロールに配置した TextBox への参照らしいので、上のコードのようにそれに文字列を代入することはできませんが、とりあえずそこは置いといて、Shuku_T.Text プロパティにアクセスできれば良いということなら、それにアクセスするパブリックプロパティをユーザーコントロールのコードビハインドに定義して、それ経由でアクセスしてはいかが?
3
+ Shuku_T というのはユーザーコントロールに配置した TextBox への参照らしいので、上のコードのようにそれに文字列を代入することはできませんが、とりあえずそこは置いといて、Shuku_T.Text プロパティにアクセスできれば良いということなら、それにアクセスするパブリックプロパティをユーザーコントロールのコードビハインドに定義して、それ経由でアクセスしてはいかが?
4
+
5
+ **【追記】**
6
+
7
+ 下のコメント欄で「プロパティの書き方を回答欄に追記しておくので見てください」と書いた件です。これが質問者さんのやりたいことと違う場合は、具体的に、ここに書いてあること以外は何も知り得ない他人が読んで分かるように、コメント欄にどう違うのかを書いてください。
8
+
9
+ **.ascx**
10
+
11
+ 例えば以下のような TextBox を含むユーザーコントロールがあって、それを使う .aspx ページからコードビハインドで TextBox1.Text に文字列を設定する場合、
12
+
13
+ ```
14
+ <%@ Control Language="C#" AutoEventWireup="true"
15
+ CodeBehind="WebUserControl1.ascx.cs"
16
+ Inherits="WebApplication1.WebUserControl1" %>
17
+
18
+ <h3>WebUserControl1</h3>
19
+
20
+ <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
21
+ <asp:Button ID="Button1" runat="server" Text="Button" />
22
+ ```
23
+
24
+ **.ascx.cs**
25
+
26
+ ユーザーコントロールのコードビハインドで TextBox1.Text プロパティにアクセスするパブリックプロパティを以下のように定義して、
27
+
28
+ ```
29
+ using System;
30
+
31
+ namespace WebApplication1
32
+ {
33
+ public partial class WebUserControl1 : System.Web.UI.UserControl
34
+ {
35
+ //
36
+ public string TextBoxText
37
+ {
38
+ get
39
+ {
40
+ return TextBox1.Text;
41
+ }
42
+ set
43
+ {
44
+ TextBox1.Text = value;
45
+ }
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ **.aspx**
52
+
53
+ .aspx ページにはそのユーザーコントロールを普通に、以下のように配置し、
54
+
55
+ ```
56
+ <%@ Page Language="C#" AutoEventWireup="true"
57
+ CodeBehind="WebForm20.aspx.cs"
58
+ Inherits="WebApplication1.WebForm20" %>
59
+
60
+ <%@ Register TagPrefix="uc" Src="~/WebUserControl1.ascx"
61
+ TagName="MyControl" %>
62
+
63
+ <!DOCTYPE html>
64
+
65
+ <html xmlns="http://www.w3.org/1999/xhtml">
66
+ <head runat="server">
67
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
68
+ <title></title>
69
+ </head>
70
+ <body>
71
+ <form id="form1" runat="server">
72
+ <div>
73
+ <uc:MyControl ID="myControl" runat="server" />
74
+ </div>
75
+ </form>
76
+ </body>
77
+ </html>
78
+ ```
79
+
80
+ **.aspx.cs**
81
+
82
+ 上の .aspx ページのコードビハインドで、上に定義したユーザーコントロールのプロパティに以下のようにアクセスして文字列を設定できます。
83
+
84
+ ```
85
+ using System;
86
+
87
+ namespace WebApplication1
88
+ {
89
+ public partial class WebForm20 : System.Web.UI.Page
90
+ {
91
+ protected void Page_Load(object sender, EventArgs e)
92
+ {
93
+ myControl.TextBoxText = "BBB";
94
+ }
95
+ }
96
+ }
97
+ ```
98
+
99
+ **結果は**
100
+
101
+ ![イメージ説明](e9a612e38b24cd566d13bcaed9d0c3b4.jpeg)