Хотя это работает, выставление контроля над формой как публичной собственности считается плохой практикой проектирования.
Предположим, что в какой-то момент в будущем вам придется изменить внутренний ListBox
на другой тип, например ListView
, чтобы добавить некоторые функции.
В этом случае, если вы создадите метод с именем DisableList
в форме, вам нужно будет изменить только одно место в коде, чтобы обновить способ отключения списка.
Но если вы выберете метод написания кода, такой как _client.listbox1.Enabled = false;
, вам придется просмотреть все фрагменты кода, которые касаются ListBox
, и обновить их.
Очень важный принцип в дизайне - избегать предоставления внутренних деталей реализации класса тем, кто должен его использовать. В этом случае вам будет полезно, если родительской форме не нужно будет знать, что список реализован как ListBox
.