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