Пользовательский элемент управления должен быть изолированным целым, контейнером. Вам нужно использовать события.
Подумайте о том, как сделать обычный элемент управления Button, заполнить какой-либо текст в обычном элементе управления TextBox?
TextBox не знает о кнопке, и кнопка не знает о вашем текстовом поле. Это отдельные элементы управления. Что вы делаете, это подписка на событие нажатия кнопки, а затем сообщите элементу управления текстовым полем изменить его текст.
Аналогично этому пользовательскому элементу управления необходимо предоставить и событие, которое вы можете активировать при каждом нажатии кнопки или другом действии.
Это что элемент управления должен делать, предоставлять событие и запускать его.
После этого вам необходимо подписаться на это мероприятие из формы, в которой вы размещаете свой пользовательский элемент управления, и в этом случае обработчик меняет свойство другого элемента управления по мере необходимости.
Ниже приведен краткий пример того, как и как работает. Найти больше информации here
Это должно быть внутри пользовательского элемента управления
//A delegate that describe's your event's signature
public delegate void ChangedEventHandler(object sender, EventArgs e);
//The actual Event declaration
public event ChangedEventHandler Changed;
//When appropriate, trigger the event from the user control
if (Changed != null) {
Changed(this, e);
}
Лучшим способом было бы использовать события –
Если переменная является статической, вам, вероятно, необходимо сделать ее общедоступной. – Adil
Можете ли вы рассказать мне об этом? @SamiKuhmonen –