Прохождение значения настройки обратно в форму, которая называла форму

StackOverflow https://stackoverflow.com/questions/2176677

Вопрос

Это то, что у меня есть ..

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

FRMSETTINGS - это форма настроек, которую вы можете выбрать цвет для фона form1 (me). Но я не могу получить доступ к свойствам Form1, чтобы изменить BackColor.

Это было полезно?

Решение

Однако вы можете предоставить обратный вызов в текущей форме, которую форма настроек может позвонить, когда свойство изменено, это сделает это для вас. Извините за C #; Слишком рано в я для меня, чтобы написать VB. Вы, вероятно, должны иметь интерфейс, который определяет набор методов, используемых для изменения свойств и передачи формы в качестве интерфейса, так что вызывающий абонент имеет доступ к способам.

 public interface IChangeableProperties
 {
      void ChangeBackgroundColor( Color newColor );
      ...
 }

 public class MyForm : Form, IChangeableProperties
 {

     ...

     public void ChangeBackgroundColor( Color newColor )
     {
        ...
     }
 }

Затем в вашем в форме настроек

 private IChangeableProperties callingForm;

 public void ShowDialog( IChangeableProperties caller )
 {
      callingForm = caller;
      ...
 }

и в вашем обработке событий

 callingForm.ChangeBackgroundColor( selectedColor );
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top