Доступ к методам UserControls из его объекта - PullRequest
0 голосов
/ 14 сентября 2009

Я создал UserControl под названием AutorControl с методом очистки его текстового поля:

public void LimpiarAutorTextbox()
        {
            textBox1.Text = "";
        }

Тогда я собираюсь из другой формы с Паналом, используя цикл for добавить X ammount вышеуказанного пользовательского элемента управления. Затем я хочу вызвать метод UserControls: «LimpiarAutorTextbox» (который является просто методом очистки текста текстового поля) с использованием цикла foreach, подобного этому, однако он не работает. Я не уверен, что делать в этом случае:

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. 

            }
        }

Панель всегда будет содержать пользовательский контроль AutorControl, и ничего больше. Как я могу достичь этого программно?

Спасибо.

1 Ответ

2 голосов
/ 14 сентября 2009

Ваша строка здесь в порядке:

X as AutorControl

просто добавьте:

(X as AutorControl).LimpiarAutorTextbox()

это должно сработать.

Кроме того, я знаю, что вы сказали, что там будут только AutorControls, но вы можете захотеть сделать что-то еще подобное:

AutorControl currentControl == X as AutorControl;
if (AutorControl != null)
{
  currentControl.LimpiarAutorTextbox();
}

Или же вы можете изменить объявление цикла for foreach, чтобы выполнить приведение для вас:

foreach(AutorControl currentControl in form.Controls)
{
  if (currentControl != null)
  {
    currentControl.LimpiarAutorTextbox();
  }
}

Некоторые альтернативы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...