عودة قيمة الإعداد إلى النموذج الذي يسمى النموذج

StackOverflow https://stackoverflow.com/questions/2176677

سؤال

هذا ما لدي ..

Dim frmSettings As New frmOptions
frmSettings.ShowDialog(Me)

FrmSettings هو نموذج الإعدادات يمكنك اختيار لون خلفية Form1 (ME). لكن لا يمكنني الوصول إلى خصائص Form1 لتغيير الألوان الخلفية.

هل كانت مفيدة؟

المحلول

ومع ذلك ، يمكنك توفير رد اتصال في النموذج الحالي يمكن أن يتصل به نموذج الإعدادات عند تغيير العقار الذي من شأنه أن يفعل ذلك من أجلك. آسف على C#؛ في وقت مبكر جدا في AM بالنسبة لي لكتابة VB. ربما تحتاج إلى واجهة تحدد مجموعة الطرق المستخدمة لتغيير الخصائص وتمرير النموذج كواجهة بحيث يمكن للمتصل الوصول إلى الطرق.

 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