C# 从其对象访问UserControls方法
我已经创建了一个名为AutoControl的UserControl,它有一个清除文本框的方法:C# 从其对象访问UserControls方法,c#,user-controls,C#,User Controls,我已经创建了一个名为AutoControl的UserControl,它有一个清除文本框的方法: public void LimpiarAutorTextbox() { textBox1.Text = ""; } 然后,我的意图是从另一个带有Panal的表单开始,使用上述用户控件的for循环add X amount。然后我想使用这样的foreach循环调用UserControls方法:“limpiaratortextbox”(这只是一个清除
public void LimpiarAutorTextbox()
{
textBox1.Text = "";
}
然后,我的意图是从另一个带有Panal的表单开始,使用上述用户控件的for循环add X amount。然后我想使用这样的foreach循环调用UserControls方法:“limpiaratortextbox”(这只是一个清除文本框文本的方法),但是它不起作用。我不确定在这种情况下该怎么办:
AutorControl usercontrolAutorControl = new AutorControl();
private override void ClearControls()
{
txtTitulo.Text = "";
//Panel1 will only hold controls of the same type: "AutorControl"
foreach (Control X in panel1.Controls)
{
X as AutorControl;//?????? I want to access each created usercontrols' method.
}
}
面板将始终保持AutoControl的usercontrol,而不是其他任何内容。如何通过编程实现这一点
谢谢。您这里的线路很好:
X作为自动控制
只需添加:
(X为自动控制)。LimpiarAutoTextBox()
这应该能奏效
另外,我知道你说过那里只有自动控制,但你可能想做更多类似的事情:
AutorControl currentControl == X as AutorControl;
if (AutorControl != null)
{
currentControl.LimpiarAutorTextbox();
}
或者,您也可以更改for foreach循环的声明,以便为您执行强制转换:
foreach(AutorControl currentControl in form.Controls)
{
if (currentControl != null)
{
currentControl.LimpiarAutorTextbox();
}
}
一些备选方案:)