0

这就是我所拥有的。。

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

frmSettings 是一个设置表单,您可以选择 form1(Me) 的背景颜色。但我无法访问 form1 属性来更改背景色。

4

1 回答 1

2

但是,您可以在当前表单中提供一个回调,设置表单可以在属性更改时调用该回调,这将为您执行此操作。对不起C#;上午写VB太早了。您可能需要一个接口来定义用于更改属性的方法集并将 Form 作为接口传递,以便调用者可以访问这些方法。

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

 public class MyForm : Form, IChangeableProperties
 {

     ...

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

然后在你的设置表单中

 private IChangeableProperties callingForm;

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

并在您的事件处理程序中

 callingForm.ChangeBackgroundColor( selectedColor );
于 2010-02-01T12:58:31.467 回答