Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses Kawalan Borang Windows Dijana Secara Dinamik mengikut Nama dalam C#?
Akses kawalan Borang Windows mengikut nama dalam C#
Dalam pembangunan Windows Forms, senario biasa ialah keperluan untuk mengakses kawalan secara dinamik berdasarkan nama mereka. Ini berguna apabila membina kawalan secara pengaturcaraan atau bekerja dengan antara muka yang kompleks.
Soalan:
Saya mempunyai ToolStripMenuItem yang dijana secara dinamik dipanggil "myMenu". Bagaimanakah saya boleh mengaksesnya secara pemrograman seolah-olah ia adalah ahli borang?
Jawapan:
Untuk mengakses kawalan Windows Forms mengikut nama, anda boleh menggunakan kaedah Control.ControlCollection.Find. Kaedah ini menerima parameter rentetan yang mewakili nama kawalan untuk ditemui.
<code class="language-csharp">ToolStripMenuItem myMenu = (ToolStripMenuItem)this.Controls.Find("myMenu", true)[0];</code>
Di sini kami mula-mula menghantar hasil Control.ControlCollection.Cari kepada jenis kawalan khusus yang kami cari (ToolStripMenuItem). Kami kemudiannya mengakses elemen pertama dalam tatasusunan yang dikembalikan kerana kaedah Cari mengembalikan tatasusunan kawalan padanan.
Contoh
Coretan kod berikut menunjukkan cara menjana ToolStripMenuItems secara dinamik daripada fail XML dan mengaksesnya dengan nama yang dijana:
<code class="language-csharp">// 加载 XML 文件并创建 ToolStripMenuItems XDocument doc = XDocument.Load("menu.xml"); foreach (XElement menuitem in doc.Root.Elements("MenuItem")) { string name = menuitem.Attribute("Name").Value; ToolStripMenuItem item = new ToolStripMenuItem(name); // 在此处添加事件处理程序或其他逻辑... this.Controls.Add(item); } // 按名称访问菜单项 ToolStripMenuItem myMenu = (ToolStripMenuItem)this.Controls.Find("myMenu", true)[0];</code>
Dalam contoh ini, myMenu ToolStripMenuItem boleh diakses dan dimanipulasi seolah-olah ia adalah ahli borang yang ditakrifkan secara langsung.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Kawalan Borang Windows Dijana Secara Dinamik mengikut Nama dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!