Передача значения настройки обратно в форму, которая вызвала форму - PullRequest
0 голосов
/ 01 февраля 2010

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

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

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

1 Ответ

2 голосов
/ 01 февраля 2010

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