Как получить доступ к методам / свойствам класса usercontrol через панель в главной форме в C # winForm - PullRequest
0 голосов
/ 20 декабря 2018

В моем проекте я создал usercontrol, у которого есть свойство.Этот пользовательский элемент управления добавлен в элемент управления Panel в основной форме.Я хочу, чтобы это значение свойства отображалось в событии нажатия кнопки основной формы.

Код класса пользовательского элемента управления:

  public partial class uc_protectionTbl1 : UserControl
  {
     public string obsValue { get; set; }
  }

Код класса главной формы:

  public partial class MainForm : Form
  {

    public MainForm()
    {
        InitializeComponent();
        addUserControl();
    }
    private void addUserControl()
    {
       uc_protectionTbl1 objUC = new uc_protectionTbl1();
       panelUC.Controls.Add(objUC);
    }
    private void SavetoolStripMenuItem1_Click(object sender, EventArgs e)
    {
         //Here I want this property value     
    }

Я пытался использовать цикл foreach для получения элементов управления с панели, но как получить значение свойства?

Я пробовал это

     private void SavetoolStripMenuItem1_Click(object sender, EventArgs e)
     {
        string testValue;    

        foreach (Control p in panelUC.Controls)
        {  
            if (p is uc_protectionTbl1) 
            { 
               testValue =       //test value is the value from property
            }
        }
     }

Заранее спасибо!

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете использовать LINQ, чтобы получить строго типизированную ссылку на ваш элемент управления:

var myControl = panelUC.Controls.OfType<uc_protectionTbl1>().FirstOrDefault();
string testValue = myControl?.obsValue;

Обратите внимание, что testValue может быть null - вы должны проверить это.

Я бытакже предлагаем вам использовать стиль кода C #, где все типы и методы используют PascalCase (т.е. начинаются с заглавной буквы).

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