Passando o valor da configuração de volta ao formulário que chamou o formulário
-
24-09-2019 - |
Pergunta
Isso é o que eu tenho..
Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)
frmSettings é um formulário de configurações onde você pode escolher a cor de fundo do form1 (Me).Mas não consigo acessar as propriedades do form1 para alterar a cor de fundo.
Solução
Você poderia, no entanto, fornecer um retorno de chamada no formulário atual que o formulário de configurações poderia chamar quando a propriedade fosse alterada, o que faria isso por você.Desculpe pelo C #;muito cedo para eu escrever VB.Você provavelmente precisaria ter uma interface que defina o conjunto de métodos usados para alterar as propriedades e passar o Form como interface para que o chamador tenha acesso aos métodos.
public interface IChangeableProperties
{
void ChangeBackgroundColor( Color newColor );
...
}
public class MyForm : Form, IChangeableProperties
{
...
public void ChangeBackgroundColor( Color newColor )
{
...
}
}
Então no seu formulário de configurações
private IChangeableProperties callingForm;
public void ShowDialog( IChangeableProperties caller )
{
callingForm = caller;
...
}
e no seu manipulador de eventos
callingForm.ChangeBackgroundColor( selectedColor );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow