Im vorherigen Artikel wurde die Methode zum Delegieren von Ereignissen vorgestellt, um zu realisieren, dass das Unterformular die Steuerung des übergeordneten Formulars aufruft. In diesem Artikel wird die Parameterübergabe verwendet, um die gemeinsame Nutzung eines Entitätsobjekts zu erreichen.
Der in diesem Artikel verwendete Code wurde ebenfalls basierend auf dem vorherigen Artikel geändert.
1. Das übergeordnete Formular
verwendet das gemeinsam genutzte Entitätsobjekt innoBERT als Parameter des Unterformularkonstruktors. Der Code im Abschnitt „Diese Zeile ändern“ lautet wie folgt.
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. Unterformular
Definieren Sie zunächst ein Klassenfeld, ändern Sie dann den Konstruktor des Unterformulars und fügen Sie Parameter hinzu, um das vom übergeordneten Formular übergebene Entitätsobjekt zu empfangen. Auf diese Weise kann das Entitätsobjekt innoBERT im Unterformular aufgerufen werden.
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. Verwenden Sie das Unterformular
, um die Eigenschaften des gemeinsam genutzten Entitätsobjekts aufzurufen.
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); } }
Das Obige ist der Inhalt des Selbststudiums C#06 aus 0-Multi-Form-Shared-Objekten. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). !