2013-04-01 47 views
8

Tôi có một chương trình thiết lập C# được cho là chấp nhận đầu vào số lượng nếu hộp kiểm được chọn. Sau đó nhân số lượng theo giá và cập nhật nhãn phù hợp với tổng chi phí.Tại sao bản cập nhật giá trị văn bản của nhãn C# của tôi không?

Tuy nhiên, khi tôi chạy chương trình, chương trình không cập nhật nhãn. Tôi chạy trình gỡ lỗi và giá trị .text của nhãn trong hệ thống là chính xác nhưng nó vẫn không xuất hiện trên biểu mẫu thực tế.

Có thuộc tính nhãn trong Visual Studio để ngăn các thay đổi được hiển thị không?

đây là đoạn trách nhiệm cập nhật các giá trị label.Text

if (chkSesame.Checked) 
    { 
     intSesameQty = Convert.ToInt32(txtSesameQty.Text); 
     decSesameTotal = intSesameQty * decBAGEL_PRICE; 
     lblSesameSeedTotal.Text = decSesameTotal.ToString("c"); 
    } 
+0

Đảm bảo bạn không đặt lại giá trị 'lblSesameSeedTotal.Text' sau trong mã của bạn, bạn cũng đang nhắm mục tiêu loại ứng dụng nào là winfomr, wpf? web? – Habib

+0

@Habib winform, và tôi không thể tìm thấy bất kỳ mã ghi đè văn bản: ( – jrounsav

+2

Ngoài lời khuyên hữu ích của @ Habib, không gọi 'lblSesameSeedTotal.Refresh()' sau khi đặt giá trị văn bản trợ giúp? – dash

Trả lời

12

Mà không biết thêm về cấu trúc biểu mẫu của bạn, và làm thế nào bạn đang gọi mã của bạn, thật khó để cung cấp cho bạn bất kỳ lời khuyên nào khác hơn là cố gắng gọi lblSesameSeedTotal.Refresh() sau khi đặt văn bản.

Liên kết làm mới cuộc gọi (MSDN Control.Refresh) làm mất hiệu lực kiểm soát và buộc thời gian chạy vẽ lại kiểm soát, tất nhiên, bao gồm việc cập nhật văn bản của nó.

Có nhiều lý do khiến bạn phải thực hiện việc này; vẽ lại là một hoạt động tốn kém, vì vậy, nói chung, nếu bạn đang xử lý sự kiện ở nơi khác trên biểu mẫu, nó có thể không cập nhật các điều khiển nhất định. Điều này đặc biệt đúng với nhãn và các điều khiển tương tự có giá trị không đổi (ví dụ: nhãn cho hộp văn bản có văn bản: Nhập tên tại đây không thực sự cần thay đổi).

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