Pregunta

Esto es lo que tengo..

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

FRMSETTINGS es un formulario de configuración que puede elegir el color para el fondo de Form1 (ME). Pero no puedo acceder a las propiedades de Form1 para cambiar la backcolor.

¿Fue útil?

Solución

Sin embargo, podría proporcionar una devolución de llamada en el formulario actual que el formulario de configuración podría llamar cuando se cambia la propiedad que lo haría por usted. Perdón por la C#; Demasiado temprano en la AM para que yo escriba VB. Probablemente necesite tener una interfaz que define el conjunto de métodos utilizados para cambiar las propiedades y pasar el formulario como interfaz para que la persona que llame tenga acceso a los métodos.

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

 public class MyForm : Form, IChangeableProperties
 {

     ...

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

Luego en tu formulario de configuración

 private IChangeableProperties callingForm;

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

Y en tu manejador de eventos

 callingForm.ChangeBackgroundColor( selectedColor );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top