将设置值传递回调用表单的表单

时间:2010-02-01 12:47:56

标签: vb.net forms showdialog backcolor

这就是我的......

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

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

1 个答案:

答案 0 :(得分:2)

但是,您可以在当前表单中提供一个回调,设置表单可以在更改属性时调用,以便为您执行此操作。对不起C#;在AM的早期我写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 );