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!