Heim >Backend-Entwicklung >C++ >Wie kann ich in C# auf Formularsteuerelemente aus einem anderen Formular zugreifen und diese ändern?
Der Zugriff auf Steuerelemente von einem Formular in einem anderen kann eine Herausforderung sein. Betrachten Sie zwei Formulare, „Form 1“ mit einer ListBox und „Form 2“, das auf seine SelectedIndex-Eigenschaft zugreifen muss.
Anstatt ein Singleton-Muster zu verwenden, sollten Sie die Übergabe einer Referenz in Betracht ziehen von einer Form zur anderen. Dies ermöglicht eine direkte Kommunikation zwischen ihnen.
In Form1:
// ... public int MyListBoxSelectedIndex { set { lsbMyList.SelectedIndex = value; } } // ...
In Form2:
// ... private Form1 mainForm; // Reference to "Form 1" public AddNewObjForm() { InitializeComponent(); mainForm = new ControlForm(); } public void SomeMethod() { mainForm.MyListBoxSelectedIndex = -1; } // ...
Ein anderer Ansatz besteht darin, eine Referenz von Form1 an Form2 zu übergeben, wodurch Form2 die LabelText-Eigenschaft des Label-Steuerelements von Form1 ändern kann:
Form1:
// ... public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 frm = new Form2(this); // Pass reference to Form2 frm.Show(); } public string LabelText { get { return Lbl.Text; } set { Lbl.Text = value; } } } // ...
Form2:
// ... public partial class Form2 : Form { public Form2() { InitializeComponent(); } private Form1 mainForm = null; public Form2(Form callingForm) { mainForm = callingForm as Form1; // Cast to Form1 InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { this.mainForm.LabelText = txtMessage.Text; // Modify LabelText } private void button1_Click(object sender, EventArgs e) { // ... } } // ...
Das obige ist der detaillierte Inhalt vonWie kann ich in C# auf Formularsteuerelemente aus einem anderen Formular zugreifen und diese ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!