Для доступа к элементам управления формой из другого проекта в том же решении

#c# #.net #winforms

#c# #.net #winforms

Вопрос:

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

Я попробовал следующий код.

            Form form =  (Form)Application.OpenForms["frm"];
           if (form != null)
           {

             Button cs = (Button)((form.Controls["btn"]);
               cs.Enabled = false;
           }
  

Используя этот код, я могу найти форму, но не могу получить доступ к элементам управления из нее. «cs» возвращает нулевое значение и выдает «ошибку исключения нулевой ссылки».В чем может быть возможная ошибка и как мне следует изменить код.Это приложение для Windows, использующее c # visual Studio 2010.
Любое предложение было бы очень полезным.
Спасибо

Ответ №1:

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

  1. Добавьте первый проект в качестве ссылки на второй
  2. Добавьте общедоступное свойство в форму, из которой вам нужен доступ к элементам управления
  3. Получите форму в том виде, в котором вы находитесь в данный момент
  4. Приведите форму к ее соответствующему / фактическому типу
  5. Используйте общедоступное свойство.

Комментарии:

1. Привет, я не могу добавить ссылку, поскольку она показывает «Ошибку циклической зависимости»

2. Если для проекта 1 требуется проект 2, а для проекта 2 требуется проект 1, вы плохо разработали это приложение. (Плохо было бы слишком хорошо) Узнайте о зависимостях и либо объедините оба проекта в один, либо фактически изучите концепции, которые вы пытаетесь реализовать. (Если вы используете 2-й вариант, ответ на ваш вопрос становится очевидным, а если вы используете первый вариант, это вообще не проблема, но вы показываете, что вы вообще не понимаете ООП) {Извините за поздний ответ}

3. Спасибо за поздний ответ