いいえ、ただし、1つのクラスを作成して、両方のコードベースのクラスから使用できます。あなたはそのクラスにユーザーコントロールを渡し、IDでコントロールにアクセスできます。あなたは文句を言わないコントロールへのアクセスを入力した任意の場合
はこのような何かを:
両方のユーザーコントロール上にある子コントロールを定義し、ここであなたが子コントロールにアクセスすることができます
共通クラスおよびインタフェース:
/// <summary>
/// common controls
/// </summary>
public interface ICommonUserControl
{
TextBox TextBox1 { get; }
Label Label1 { get; }
}
public class CommonCode
{
private ICommonUserControl commonUC;
public CommonCode(ICommonUserControl uc)
{
this.commonUC = uc;
}
public void CommonWork()
{
this.commonUC.TextBox1.Text = "SomeText";
this.commonUC.Label1.Text = "Other Text";
}
}
を
して、すべてのユーザーにこのような何か、あなたはICommonUserControlインタフェースを実装する必要がありますコントロール:
public partial class UC1 : System.Web.UI.UserControl, ICommonUserControl
{
public TextBox TextBox1 { get { return this.Uc1TextBox1; } }
public Label Label1 { get { return this.Uc1Label1; } }
protected void Page_Load(object sender, EventArgs e)
{
}
}
そして、最後に、ここexampがありますル使用量:各ascxファイルは、(Webアプリケーションを書いている場合)のコントロールを参照するためにdesigner.csと相まって来るとC.csが同じと結合することがないかもしれないよう
Control uc1 = this.LoadControl("UC1.ascx");
this.phParent1.Controls.Add(uc1);
Control uc2 = this.LoadControl("UC2.ascx");
this.phParent2.Controls.Add(uc2);
CommonCode cc1 = new CommonCode(uc1 as ICommonUserControl);
cc1.CommonWork();
CommonCode cc2 = new CommonCode(uc2 as ICommonUserControl);
cc2.CommonWork();
はいApp_Codeフォルダ "c.Cs"にクラスファイルをseparely作成し、同様のコードをc.Csに移動して使用することができます。 – Madhu