dengan nama kawalan tetingkap Windows
Dalam C#, kawalan tetingkap Windows biasanya diperolehi dengan nama kawalan rujukan langsung. Walau bagaimanapun, apabila kawalan dihasilkan secara dinamik, kaedah ini menjadi tidak realistik. Untuk keadaan ini, kaedah penggantian yang lebih dinamik diperlukan.
Untuk mengakses kawalan tetingkap Windows secara dinamik mengikut nama, anda boleh menggunakan kaedah
. Katakan anda mempunyai dinamik Control.ControlCollection.Find
yang dipanggil . Anda mahu menggunakan nama untuk mengakses item menu ini dengan pengaturcaraan. myMenu
ToolStripMenuItem
Berikut adalah cara menggunakan
Find
<code class="language-csharp">string name = "myMenu"; // 注意这里需要用字符串字面量,而不是变量myMenu Control[] controls = this.Controls.Find(name, true); //第二个参数true表示递归查找子控件 if (controls.Length > 0 && controls[0] is ToolStripMenuItem menuItem) { // 访问并操作控件 menuItem.Enabled = false; // 例如,禁用菜单项 } else { // 控件未找到 Console.WriteLine("Control not found."); }</code>
. Anda kemudian boleh menggunakan array ini untuk mengakses dan mengendalikan kawalan. Find
Nota: Control
myMenu
Parameter kedua kaedah ditetapkan kepada ToolStripMenuItem
, yang bermaksud pencarian rekursif untuk anak -anak syarikat. Jika tidak berada dalam sub -kontrol langsung tetingkap semasa, anda perlu menetapkannya ke untuk mencarinya. Jika kawalan tidak dijumpai, akan menjadi 0. Atas sebab keselamatan, adalah disyorkan untuk memeriksa jenis kawalan sebelum mengakses atribut kawalan kawalan.
Find
Kaedah membolehkan anda merujuk kawalan melalui nama dinamiknya, dengan itu menyediakan mekanisme yang fleksibel dan cekap untuk memproses tingkap kompleks dan dinamik. true
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengakses Borang Windows secara dinamik dengan nama di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!