跨表單存取表單控制項
問題:
您有多個表從一種窗體存取和修改另一種窗體中的特定控制項(例如,ListBox)。有沒有比建立公共設定器更好的方法?
建議的解決方案:
傳遞表單引用
而不是建立公用設定器,請考慮在初始化期間將一種形式的引用傳遞給另一種形式。這允許直接存取控制項和屬性,而不需要中間屬性。
範例程式碼:
Form1 初始化 Form2 並提供對其自身的參考。
public partial class Form1 : Form { private void button1_Click(object sender, EventArgs e) { Form2 frm = new Form2(this); frm.Show(); } public string LabelText { get { return Lbl.Text; } set { Lbl.Text = value; } } }
Form2 收到 Form1 的引用。
public partial class Form2 : Form { private Form1 mainForm = null; public Form2(Form callingForm) { mainForm = callingForm as Form1; InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { this.mainForm.LabelText = txtMessage.Text; } }
透過建構子傳遞引用,Form2 可以直接存取和修改 Form1 的 LabelText 屬性。
以上是如何跨不同Windows窗體高效存取和修改控制項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!