首頁 >後端開發 >C++ >如何跨不同Windows窗體高效存取和修改控制項?

如何跨不同Windows窗體高效存取和修改控制項?

Susan Sarandon
Susan Sarandon原創
2025-01-07 13:26:39893瀏覽

How Can I Efficiently Access and Modify Controls Across Different Windows Forms?

跨表單存取表單控制項

問題:

您有多個表從一種窗體存取和修改另一種窗體中的特定控制項(例如,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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn