이전 글에서는 상위 폼의 컨트롤을 호출하는 하위 폼을 구현하기 위해 이벤트를 위임하는 방법을 소개했습니다. 이 문서에서는 매개변수 전달을 사용하여 엔터티 개체를 공유합니다.
이 글에 사용된 코드도 이전 글을 바탕으로 수정되었습니다.
1. 상위 양식
은 공유 엔터티 개체 innoBERT를 하위 양식 생성자의 매개 변수로 사용합니다. "이 줄 수정" 섹션의 코드는 다음과 같습니다.
if (subFormPPGTx[i] == null || subFormPPGTx[i].IsDisposed) { subFormPPGTx[i] = new SubFormPPG(innoBERT, i);//修改此行 subFormPPGTx[i].Text = formTitle; subFormPPGTx[i].Name = formName; //subFormPPGTx[i].Tag = i; subFormPPGTx[i].SendToParent += new SubFormPPG.SendFun(RecvInfo); subFormPPGTx[i].Show(this); } else { subFormPPGTx[i].WindowState = FormWindowState.Normal; subFormPPGTx[i].Activate(); }
2. 하위 양식
먼저 클래스 필드를 정의한 다음 하위 양식의 생성자를 수정하고 매개변수를 추가하여 상위 양식에서 전달된 엔터티 개체를 받습니다. 이러한 방식으로 하위 양식에서 엔터티 개체 innoBERT를 호출할 수 있습니다.
InnolightBERT innolightBERT;bool formStatus = false;private int ID; public delegate void SendFun(int number); public event SendFun SendToParent; public SubFormPPG(InnolightBERT innoBERT, int ID) { InitializeComponent(); this.innolightBERT = innoBERT;//接收对象 this.ID = ID; }
3.
하위 양식을 사용하여 공유 엔터티 개체의 속성을 호출합니다.
private void SubFormPPG_Load(object sender, EventArgs e) { this.GetPPGSetting(this.ID); }private void GetPPGSetting(int channel) { try { switch (channel) { case 0: this.comboBoxSwing.SelectedIndex = (int)innolightBERT.Tx1_Swing; break; case 1: this.comboBoxSwing.SelectedIndex = (int)innolightBERT.Tx2_Swing; break; case 2: this.comboBoxSwing.SelectedIndex = (int)innolightBERT.Tx3_Swing; break; case 3: this.comboBoxSwing.SelectedIndex = (int)innolightBERT.Tx4_Swing; break; default: return; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
위 내용은 0-multi-form 공유 객체의 C#06 자습 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!