Пожалуйста, простите псевдо-код, но это простой вопрос:
Я создаю пользовательский элемент управления (myControlBase: UserControl) с текстовым полем (id = "txtbox") в его разметке. В этом коде я пишу метод SayHello (string s) {txtbox.Text = s; }.
Я создаю еще один пользовательский элемент управления, расширяющий myControlBase (myControl: myControlBase). В page_load этого дочернего элемента управления я вызываю SayHello ("привет"); и получаю сообщение об ошибке во время выполнения, сообщающее, что txtbox имеет значение null (очевидно, он еще не был создан).
Как тогда я могу наследовать от пользовательского элемента управления, и чтобы мои дочерние элементы управления имели доступ к разметке базового элемента управления? Я пытался прочитать жизненный цикл событий для этих элементов управления, но, похоже, я его не понимаю.
Есть идеи?
-edit-
Извините, это ASP.Net. Если этот код делает его более понятным, то я, должно быть, довольно плохо описал проблему.
txtBox - это ASP: элемент управления Textbox, который существует в разметке myControlBase.
public partial class myControlBase : System.Web.UI.UserControl
{
protected void SayHello(string s){
txtBox.Text = s;
}
}
public partial class myControl: myControlBase
{
protected void Page_Load(object sender, EventArgs e)
{
SayHello("hello");
}
}
Это потерпит неудачу в SayHello ("привет"); потому что txtBox вернул Null.