Как передать данные с одного UserControl в другой

160
21 ноября 2021, 02:10

У меня есть два User Control: ProgramsUS и ее дочерняя ShowCodeUS. На ProgramsUS находится treeview, нажимая на его узел, появляется ShowCodeUS. Проблема в том, что одновременно при нажатии на узел treeviw в textboxCode, который находится в ShowCodeUS, должен вводиться текст. Не понимаю, как реализовать передачу данных между UserControl.

      private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
        showCode1.BringToFront();
        //передать текст в textboxCode 
    }
Answer 1

Если проект не совсем большой, и не придётся много переписывать, то вариант, переехать на MVVM, и просто в ViewModel записывать состояние из TreeView, а в нужном UserControl, цеплять это состояние.

Answer 2

Решение "в лоб".

У ShowCodeUS сделать метод, который будет принимать нужный текст и в обработчике событий вызывать этот метод. Например:

showCode1.BringToFront();
showCode1.SetText("My Text");

Внутри метода SetText выводите текст куда нужно.

А, вообще по хорошему нужно использовать паттерны (MVVM или MVP). Это сильно упростит работу.

READ ALSO
ASP NET.CORE MVC Динамическое создание <input>

ASP NET.CORE MVC Динамическое создание <input>

Пишу сайт - квизерСтолкнулся с такой проблемой

244
Убрать мерцание из Picturebox

Убрать мерцание из Picturebox

Всем привет возникла такая вот проблема, при перерисовывания изображения возникает сильное мерцание( 2 буферизация на форме включена),прошу...

102
Framework совместимость с Core

Framework совместимость с Core

Если dll написана наNET Framework 2

92