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

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

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

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

1 ответ

Решение

Однако вы можете предоставить обратный вызов в текущей форме, который может вызывать форма настроек при изменении свойства, что сделает это за вас. Извините за C#; слишком рано в AM для меня, чтобы написать 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 );
Другие вопросы по тегам