Nhận tất cả các nút trong một hình thức bao gồm các nút trong bảng điều khiển của hình thức tương tự ..Làm thế nào tôi có thể nhận được nút Controls trong Windows Form - Panel
6
A
Trả lời
9
List<Control> list = new List<Control>();
GetAllControl(this, list);
foreach (Control control in list)
{
if (control.GetType() == typeof(Button))
{
//all btn
}
}
private void GetAllControl(Control c , List<Control> list)
{
foreach (Control control in c.Controls)
{
list.Add(control);
if (control.GetType() == typeof(Panel))
GetAllControl(control , list);
}
}
1
thử này
foreach (var control in this.Controls)
{
if (control.GetType()== typeof(Button))
{
//do stuff with control in form
}
else if (control.GetType() == typeof(Panel))
{
var panel = control as Panel;
foreach (var pan in panel.Controls)
{
if (pan.GetType() == typeof(Button))
{
//do stuff with control in panel
}
}
}
}
+1
đệ quy có thể sử dụng trong trường hợp Panel chứa một bảng điều khiển khác bằng một nút. –
+0
@Nakul: ahh bạn r @hashi trả lời là hoàn toàn OK. –
5
Đây là những gì tôi đã làm, Tôi đã viết một chức năng đơn giản, khi tôi bấm vào một nút, tôi chọn chỉ kiểm soát bảng và vượt qua nó đến một chức năng cho vòng lặp hơn thông qua điều khiển trên bảng điều khiển đó.
private void cmdfind_Click(object sender, EventArgs e)
{
try
{
foreach (Control control in this.Controls)
{
if (control.GetType() == typeof(Panel))
//AddToList((Panel)control); //this function pass the panel object so further processing can be done
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Các vấn đề liên quan
- 1. Windows form/WPF quá lớn, làm thế nào tôi có thể chia nó ra?
- 2. Làm cách nào để nhóm các nút radio Windows Form?
- 3. Excel VBA: Lấy giá trị từ Form Controls
- 4. Làm thế nào tôi có thể nhận được một nút tròn?
- 5. làm thế nào tôi có thể console.log làm thế nào các giá trị #form sẽ được gửi?
- 6. Nút radio trong Bootstrap .form-horizontal
- 7. webapp2 + jinja2: Làm thế nào tôi có thể nhận được uri_for() làm việc trong jinja2-xem
- 8. Làm thế nào để bạn nhận được nút gửi trong bàn phím Windows Phone?
- 9. Làm thế nào tôi có thể nhận được chiều rộng và chiều cao
- 10. Làm thế nào tôi có thể nhận được tài sản của một phiên bản cũ của một nút trong jackrabbit?
- 11. Làm thế nào tôi có thể nhận được tổng bộ nhớ vật lý trong C#?
- 12. Làm cách nào tôi có thể nhận được ủy quyền?
- 13. Làm thế nào tôi có thể nhận được các phông chữ sẵn có trong WPF
- 14. Làm thế nào để có được thực thể hoặc chuyển biến cho Symfony2 twig form widget?
- 15. Làm thế nào tôi có thể nhận được trực quan có thể nhìn thấy của UITableView?
- 16. Làm thế nào tôi có thể nhận được MongoDB làm việc với php 5.3.5 & wamp?
- 17. Trong .net, biết số tuần làm thế nào tôi có thể nhận được ngày trong tuần?
- 18. Làm thế nào tôi có thể nhận được bộ nhớ cao điểm trên Mac OS?
- 19. Làm cách nào để tôi có thể nhận xét một nút trong XML bằng PowerShell?
- 20. Django Form Gửi Nút
- 21. Làm thế nào tôi có thể nhận được chiều rộng của div, được viết bằng CSS
- 22. Làm thế nào tôi có thể nhận được dấu thời gian hiện nay trong PHP
- 23. Làm thế nào tôi có thể nhận được các bit từ một chuỗi trong C#?
- 24. Làm thế nào tôi có thể nhận được ngăn xếp cuộc gọi trong Clojure?
- 25. Làm thế nào tôi có thể nhận được giá trị nguồn và biến trong tracebacks ruby?
- 26. Làm thế nào tôi có thể nhận được một mảng lười biếng trong Ruby?
- 27. Làm thế nào tôi có thể nhận được độ dài của một mảng trong awk?
- 28. Ruby - Làm thế nào tôi có thể nhận được tên phương thức trong chính nó?
- 29. làm thế nào tôi có thể nhận được thời gian hiện tại trong C#?
- 30. Trong JQuery làm thế nào tôi có thể nhận được ô bảng liền kề?
WPF, Windows Forms, ...? –
câu hỏi của bạn chưa đủ rõ ràng. – pRimE
Câu hỏi ......? – hcb