質問

これが私が持っているものです。

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

Frmsettingsは、Form1(ME)の背景の色を選択できる設定フォームです。ただし、form1プロパティにアクセスしてバックカラーを変更することはできません。

役に立ちましたか?

解決

ただし、プロパティが変更されたときに設定フォームが呼び出すことができる現在のフォームでコールバックを提供することができます。 C#でごめんなさい。私がVBを書くには、AMの早すぎる。おそらく、発信者がメソッドにアクセスできるように、プロパティを変更し、フォームをインターフェイスとして渡すために使用されるメソッドのセットを定義するインターフェイスが必要です。

 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 );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top