Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses Kawalan Borang Windows Dijana Secara Dinamik mengikut Nama dalam C#?

Bagaimana untuk Mengakses Kawalan Borang Windows Dijana Secara Dinamik mengikut Nama dalam C#?

Susan Sarandon
Susan Sarandonasal
2025-01-27 13:06:09670semak imbas

How to Access Dynamically Generated Windows Forms Controls by Name in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn