C# 从其对象访问UserControls方法

C# 从其对象访问UserControls方法,c#,user-controls,C#,User Controls,我已经创建了一个名为AutoControl的UserControl,它有一个清除文本框的方法: public void LimpiarAutorTextbox() { textBox1.Text = ""; } 然后,我的意图是从另一个带有Panal的表单开始,使用上述用户控件的for循环add X amount。然后我想使用这样的foreach循环调用UserControls方法:“limpiaratortextbox”(这只是一个清除

我已经创建了一个名为AutoControl的UserControl,它有一个清除文本框的方法:

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();
  }
}
一些备选方案:)