Pengambilalihan cekap jenis sub -kontrol dalam bentuk Windows
Apabila merancang aplikasi Windows Forms, anda sering perlu mengakses subkepit tertentu, seperti butang atau kotak teks. Walaupun penggunaan fungsi rekursif melelehkan semua kawalan seolah -olah menjadi penyelesaian yang layak, terdapat kaedah yang lebih berkesan.
Kaedah 1: Taipkan penapisan dengan jenis kawalan
Kawalan sifat tetingkap Windows membolehkan akses ke set semua sub -kontrol. Dengan menggunakan kaedah getType () untuk kawalan tunggal, anda boleh menapis set untuk mendapatkan jenis kawalan tertentu:
Kaedah ini menyediakan cara yang cepat dan ringkas untuk mengambil semua sub -kontrol yang sepadan.
<code class="language-vb.net">Dim ctrls() As Control ctrls = Me.Controls.OfType(GetType(TextBox)).ToArray()</code>
atau, anda boleh menggunakan kaedah pengembangan LINQ untuk mendapatkan fleksibiliti yang lebih besar. Kod berikut menunjukkan kaedah ini:
Tatabahasa ini menggabungkan pengendali jenis dengan ekspresi pertanyaan LINQ, dan menapis koleksi kawalan mengikut jenis yang diperlukan.Kaedah 3: Fungsi rekursif yang digunakan untuk kawalan bersarang
<code class="language-vb.net">Dim Ctrls = From ctrl In Me.Controls Where TypeOf ctrl Is TextBox</code>
Jika anda perlu mengambil subcontree dalam kawalan lain, anda boleh menggunakan fungsi rekursif. Fungsi contoh berikut menunjukkan kaedah ini:
dengan sembuh, fungsi ini melintasi semua peringkat sub -kontrol dan skrin mengikut jenis yang ditentukan.
Atas ialah kandungan terperinci Bagaimanakah saya dapat mengambil jenis kawalan kanak -kanak tertentu dalam bentuk tingkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!