2016-01-27 10 views
7

Ví dụTôi có thể chạy nhiều kiểm soát nhưng cùng một phương pháp trong C#

txtUnitTotalQty.Text = ""; 
txtPrice.Text = ""; 
txtUnitPrice.Text = ""; 
lblTotalvalue.Text = ""; 

Để cái gì đó như

(txtUnitTotalQty, txtPrice, txtUnitPrice, lblTotalvalue).Text = ""; 
+0

Bạn cũng có thể viết phương thức để chấp nhận điều khiển làm mảng và giá trị tham số, đặt giá trị của tất cả các mảng tham số trong hàm đó. – Anil

+1

Hãy suy nghĩ để chấp nhận câu trả lời để cảm ơn những người dành thời gian để giúp bạn:) –

+1

@Fabien OK cảm ơn bạn đã nhắc tôi –

Trả lời

9

Bạn có thể làm điều đó như thế này:

txtUnitTotalQty.Text = txtPrice.Text = txtUnitPrice.Text = lblTotalvalue.Text = string.Empty; 

Hoặc bạn có thể viết một phương pháp cho nó:

public void SetText(params TextBox[] controls, string text) 
{ 
    foreach(var ctrl in controls) 
    { 
     ctrl.Text = text; 
    } 
} 

Sử dụng này sẽ là:

SetText(txtUnitTotalQty, txtPrice, txtUnitPrice, lblTotalvalue, string.Empty); 
+0

Cảm ơn rất nhiều !!!! –

1

Một cách khác để có thể viết điều tương tự với một chức năng nhỏ hơn là

void ClearAllText(Control con) 
{ 
    foreach (Control c in con.Controls) 
    { 
     if (c is TextBox) 
     ((TextBox)c).Clear(); 
    } 
} 
+0

mã của bạn sẽ thực hiện cuộc gọi đệ quy vô hạn nếu điều khiển không phải là hộp văn bản .... – Viru

+0

Cảm ơn bạn đã nắm bắt. Tôi đã thay đổi mã. –

1

Bạn có thể làm một cái gì đó như thế này:

foreach (var txt in new[] { txtUnitTotalQty, txtPrice, txtUnitPrice, lblTotalValue}) 
{ 
    txt.Text = ""; 
} 
+2

Vì các điều khiển là loại khác nhau, 'new []' sẽ không thể tự động chọn loại cho mảng, vì vậy bạn cần phải nói rõ ràng 'new Control [] {...}' – Richard

3

Vì .Text là thuộc tính của Kiểm soát lớp cơ sở chung, bạn có thể lặp qua danh sách:

new List<Control> { txtUnitTotalQty, txtPrice, txtUnitPrice, lblTotalvalue }.ForEach(c => c.Text = ""); 
+0

OMG THANK YOU FOR THE KIẾN THỨC MỚI –

Các vấn đề liên quan