Passando valore di impostazione di nuovo alla forma che aveva chiamato la forma
-
24-09-2019 - |
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.
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 );