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
Lepaskan: 2025-01-27 13:06:09
asal
688 orang telah melayarinya

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.

ToolStripMenuItem myMenu = (ToolStripMenuItem)this.Controls.Find("myMenu", true)[0];
Salin selepas log masuk

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:

// 加载 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];
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan