使用事件将信息传递给父窗体



我有一个用户控制类,它具有以下行为(非常正常的东西)

public class C1 
{
//controls with auto generated code in the designer file that I can access  
//such as with the following action (for example)
string s1 = txtThing.Text;
}  

它是通过父窗体中的调用动态创建(并与其他类一起销毁)的,如:

public class MainForm
{
UserControl activeControl = null;
//...later on...
activeControl = new C1(params...)  
//later on, as a new control is needed
panel.Controls.Clear();
}  

我需要向文本框文本更改事件动态添加一个事件处理程序,该事件位于MainForm类中。所以我想做一些类似的事情

activeControl.txtThing.TextChanged += new EventHandler(MyCustomHandler);

但文本框显然是私人的。如果我在C1类中创建一个属性来获得它(甚至只是文本),我仍然无法"获得"我需要的控件pr属性,我不知道为什么。。。我能看到的唯一属性(在intelligense中使用activeControl.)是标准的用户控件属性,而C1的任何属性都没有。我不知道为什么
我们当然很感激您的帮助,希望您能看到我想要得到的东西。

在C1类中创建属性后,需要强制转换activeControl

if (activeControl is C1)
(activeControl as C1).TxtThingProperty.TextChanged += new EventHandler(MyCustomHandler);

相关内容

  • 没有找到相关文章

最新更新