Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat mengambil jenis kawalan kanak -kanak tertentu dalam bentuk tingkap?

Bagaimanakah saya dapat mengambil jenis kawalan kanak -kanak tertentu dalam bentuk tingkap?

Barbara Streisand
Lepaskan: 2025-01-31 21:36:09
asal
558 orang telah melayarinya

How Can I Efficiently Retrieve Specific Child Control Types in Windows Forms?

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.

Dim ctrls() As Control
ctrls = Me.Controls.OfType(GetType(TextBox)).ToArray()
Salin selepas log masuk
<二> Kaedah 2: Gunakan kaedah pengembangan LINQ

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
Dim Ctrls = From ctrl In Me.Controls Where TypeOf ctrl Is TextBox
Salin selepas log masuk

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!

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