Domanda

Questo è quello che ho ..

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

frmSettings è un impostazioni di forma che si può scegliere il colore per lo sfondo di Form1 (Me). Ma non posso accedere Form1 proprietà per cambiare il colore di sfondo.

È stato utile?

Soluzione

Si potrebbe, tuttavia, fornire una richiamata nella forma attuale che le impostazioni di forma potrebbe chiamare quando la proprietà viene modificata che avrebbe farlo per voi. Ci scusiamo per il C #; troppo presto al mattino per me scrivere VB. si sarebbe probabilmente bisogno di avere un'interfaccia che definisce l'insieme di metodi utilizzati per modificare le proprietà e passare il modulo come l'interfaccia in modo che il chiamante ha accesso ai metodi.

 public interface IChangeableProperties
 {
      void ChangeBackgroundColor( Color newColor );
      ...
 }

 public class MyForm : Form, IChangeableProperties
 {

     ...

     public void ChangeBackgroundColor( Color newColor )
     {
        ...
     }
 }

Poi, nel tuo sotto forma impostazioni

 private IChangeableProperties callingForm;

 public void ShowDialog( IChangeableProperties caller )
 {
      callingForm = caller;
      ...
 }

e nel vostro gestore di eventi

 callingForm.ChangeBackgroundColor( selectedColor );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top