Передача значения настройки обратно в форму, которая вызвала форму
Это то, что у меня есть..
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 );