2009-02-26 33 views
6

C#'da, iki metin kutusuna sahip bir LAN messenger için bir form penceresi oluşturuyorum. Sadece salt okunur olarak belirli bir metin kutusu oluşturmam gerekiyor, ancak kendisine gönderilen herhangi bir metin gri görünmüyor ve bu da istenmiyor. Önlenebilecek bir yolu var mı?Salt okunur metin kutusuna C#

cevap

0

Gri ​​renk, metin kutusunun ReadOnly durumunun göstergesidir. Metin kutusunun aslında, devre dışı olduğunu keşfetmek için metin girmesi gerekmeyen kullanıcının görsel bir göstergesidir.

Yalnızca salt okunur davranışa gereksiniminiz varsa, bunun yerine bir Etiket kullanarak daha iyi durumda olursunuz.

6

Sen, bir etiketle ya KeyPress olayı metin kutusunda yerini alabilir true ele seti:

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

Bu yaklaşımdan kişisel olarak nefret ediyorum çünkü kullanıcı hala metni düzenleyebileceğini düşünüyor ve yazdıkları harfler hiçbir şey yapmadığında şaşırıyor. –

+0

Katılıyorum, ancak soruyu soran kişinin engelli bir metin kutusundaki gri metin hakkında endişeli göründüğü anlaşılıyor, bu durum boya olayını devralmaya ve geçersiz kılmaya göre daha basit. – benPearce

+0

ReadOnly = true daha da kolay –

2

Metnin rengini ayarlayabilirsinizÖnplanRengiTextbox ayarlayarak özelliği. Örneğin

:

myTextBox.ForeColor = Color.Black

bir metin kutusu kullanabilir ve Color.White doğru, Color.Black için ForeColor ve BackColor ReadOnly açardı
22

. Bu şekilde metni seçebilir ve Ctrl-C ile kopyalayabilirsiniz. metin kutusu beyaz (veya Pencere) salt okunur ne zaman, açıkça Pencere BackColor özelliğini ayarlamanız gerekir tutabilmek için

+0

Daha eski iş parçacığı, ancak bunu yararlı buldum. Metin kutusu normal görünüyor, ancak yazamazsınız. Şerefe! – Anders

1

. Bunu yapmak için önce BackColor'u başka bir değere, ardından tekrar Window'a ayarlamanız gerekir. Arka renk özelliği, artık varsayılan değer olmadığını belirten kalın hale getirilmelidir.

İlgili konular