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.

Foi útil?

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
scroll top