2009-02-26 46 views
6

Trong C#, tôi đang tạo cửa sổ biểu mẫu cho một sứ giả LAN có hai hộp văn bản. Tôi cần tạo một hộp văn bản cụ thể dưới dạng chỉ đọc, nhưng bất kỳ văn bản nào được gửi tới nó đều xuất hiện màu xám không được mong muốn. Có cách nào có thể ngăn chặn được không?Hộp văn bản chỉ đọc trong C#

Trả lời

0

Màu xám biểu thị trạng thái ReadOnly của hộp văn bản. Nó là một dấu hiệu trực quan cho người dùng, những người sẽ không cần phải nhập văn bản để phát hiện ra rằng hộp văn bản là trong thực tế, vô hiệu hóa.

Nếu bạn chỉ cần hành vi chỉ đọc, bạn nên sử dụng Nhãn thay thế tốt hơn.

6

Bạn có thể thay thế nó bằng một nhãn hoặc trên hộp văn bản trong sự kiện KeyPress, thiết lập xử lý là true:

void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = true; 
} 
+3

Cá nhân tôi ghét phương pháp này vì người dùng vẫn cho rằng họ có thể chỉnh sửa văn bản và sau đó bị bất ngờ khi các chữ cái họ nhập không làm gì cả. –

+0

Tôi đồng ý, nhưng có vẻ như người hỏi câu hỏi có vẻ lo ngại về văn bản màu xám trong hộp văn bản bị vô hiệu hóa, điều này đơn giản hơn là kế thừa và ghi đè sự kiện sơn. – benPearce

+0

ReadOnly = true thậm chí còn dễ dàng hơn –

2

Bạn có thể thiết lập màu sắc của văn bản bằng cách thiết lập TextboxForeColor bất động sản.

Ví dụ:

myTextBox.ForeColor = Color.Black

22

Tôi sẽ sử dụng một Textbox và thiết ReadOnly là true, ForeColor để Color.Black, và BackColor để Color.White. Bằng cách này bạn vẫn có thể chọn văn bản và sao chép nó bằng Ctrl-C.

+0

Chủ đề cũ hơn, nhưng tôi thấy điều này hữu ích. Hộp văn bản trông bình thường, ngoại trừ bạn không thể gõ vào nó. Chúc mừng! – Anders

1

Để giữ hộp văn bản màu trắng (hoặc Cửa sổ) khi chỉ đọc, bạn phải đặt thuộc tính BackColor thành Window. Để làm điều này, trước tiên bạn phải đặt BackColor thành một giá trị khác, sau đó quay lại Window. Thuộc tính backcolor sẽ trở nên đậm cho biết nó không còn là giá trị mặc định nữa.

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