¿Alguien sabe qué propiedad establece el color del texto para el control deshabilitado? Tengo que mostrar un texto en un TextBox
deshabilitado y quiero establecer su color a negro.¿Cómo cambiar el color de la fuente de un TextBox deshabilitado?
Respuesta
NOTA: consulte la respuesta de Cheetah a continuación, ya que identifica un requisito previo para que funcione esta solución. Configurando el BackColor
del TextBox
.
Creo que lo que realmente quiere hacer es habilitar el TextBox
y establezca la propiedad ReadOnly
a true
.
Es un poco complicado cambiar el color del texto en un TextBox
deshabilitado. Creo que probablemente deba subclasificar y anular el evento OnPaint
.
ReadOnly
aunque debería darle el mismo resultado que !Enabled
y le permite mantener el control del color y el formato del TextBox
. Creo que también seguirá siendo compatible con la selección y copia de texto del TextBox
que no es posible con un TextBox
deshabilitado.
Otra alternativa simple es usar un Label
en lugar de un TextBox
.
Funciona bien de esta manera también. ¡Gracias! –
Si esta es su respuesta, haga clic en el control :) –
No es una respuesta exacta, pero es una alternativa justa;) –
Además, para que ForeColor se obedezca en un TextBox marcado como ReadOnly, debe establecer explícitamente BackColor. Si desea que siga usando el BackColor predeterminado, debe hacer que el conjunto sea explícito, ya que el diseñador es demasiado inteligente para su propio beneficio aquí. Es suficiente para establecer BackColor a su valor actual. Lo hago en el evento Load del formulario, así:
private void FormFoo_Load(...) {
txtFoo.BackColor = txtFoo.BackColor;
}
Gracias por la información, me preguntaba por qué no funcionaba. ¿Alguna idea de por qué exactamente está sucediendo esto? –
IIRC, hay una bandera en algún lugar para verificar si los colores se han personalizado. Esa bandera no se establece a menos que se establezca BackColor. No puedo encontrarlo ahora, pero si hurgas en Reflector, es posible que puedas. – Cheetah
+1. Sin embargo, esta creencia de los mendigos. – smirkingman
hi establecido el atributo de sólo lectura a la verdad desde el lado código o el tiempo de ejecución no desde el tiempo de diseño
txtFingerPrints.BackColor = System.Drawing.SystemColors.Info;
txtFingerPrints.ReadOnly = true;
Puede prueba esto. Reemplazar el evento OnPaint del TextBox.
protected override void OnPaint(PaintEventArgs e)
{
SolidBrush drawBrush = new SolidBrush(ForeColor); //Use the ForeColor property
// Draw string to screen.
e.Graphics.DrawString(Text, Font, drawBrush, 0f,0f); //Use the Font property
}
establezca las ControlStyles a "UserPaint"
public MyTextBox()//constructor
{
// This call is required by the Windows.Forms Form Designer.
this.SetStyle(ControlStyles.UserPaint,true);
InitializeComponent();
// TODO: Add any initialization after the InitForm call
}
o puede intentar este truco
En Introduzca los acontecimiento ajustar el enfoque
int index=this.Controls.IndexOf(this.textBox1);
this.Controls[index-1].Focus();
Entonces su control no se enfocará y se comportará como deshabilitado.
Si desea mostrar texto que no se puede editar o seleccionado puede simplemente usar una etiqueta
No si tiene controles de validador en el cuadro de texto. Los validadores no funcionan en asp: etiquetas por desgracia. No es tan simple como pensaste en un principio. – Fandango68
Además de la respuesta por @ spoon16 y @Cheetah, siempre establece la propiedad tabstop
en False en el cuadro de texto para evitar que el texto sea seleccionado por defecto.
Como alternativa, también se puede hacer algo como esto:
private void FormFoo_Load(...) {
txtFoo.Select(0, 0);
}
o
private void FormFoo_Load(...) {
txtFoo.SelectionLength = 0;
}
que acaba de encontrar una gran manera de hacer eso. En mi ejemplo estoy usando un RichTextBox pero debería funcionar con cualquier control:
public class DisabledRichTextBox : System.Windows.Forms.RichTextBox
{
// See: http://wiki.winehq.org/List_Of_Windows_Messages
private const int WM_SETFOCUS = 0x07;
private const int WM_ENABLE = 0x0A;
private const int WM_SETCURSOR = 0x20;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (!(m.Msg == WM_SETFOCUS || m.Msg == WM_ENABLE || m.Msg == WM_SETCURSOR))
base.WndProc(ref m);
}
}
Usted puede establecer con seguridad Activado = sí y ReadOnly = false, y que va a actuar como una etiqueta, evitando el enfoque, la entrada del usuario, cambio de cursor, sin estar realmente deshabilitado.
Vea si le funciona. Saludos
encarga solamente Habilitar cambiado y configurarlo para que el color que necesita
private void TextBoxName_EnabledChanged(System.Object sender, System.EventArgs e)
{
((TextBox)sender).ForeColor = Color.Black;
}
- 1. Cambiar el aspecto de un enlace deshabilitado
- 2. ¿Cómo puedo cambiar el color de la fuente de un elemento SELECT deshabilitado? (Funciona en Firefox pero no en IE)
- 3. Cómo cambiar el color de la fuente DrawThemeTextEx?
- 4. Cómo cambiar el aspecto de un JButton deshabilitado en java
- 5. Cómo cambiar el color de fondo de un cuadro de texto enriquecido cuando está deshabilitado?
- 6. ¿Cómo cambiar el color de fuente de Spinner?
- 7. Cómo cambiar el color y la fuente en ListView
- 8. ¿Cómo puedo cambiar un color de fuente específico en git?
- 9. Cambiar el color anterior del cuadro combinado deshabilitado
- 10. ¿Cómo cambiar el color de primer plano del texto resaltado para un WPF TextBox?
- 11. ¿Se puede diseñar la selección de TextBox con un color de fuente diferente?
- 12. Establecer un ForeColor de TextBox deshabilitado para que sea el mismo que su BackColor en C#
- 13. Cambiar color de fondo y color de fuente
- 14. ¿Cómo se puede cambiar el color de la fuente de un control habilitado por tema?
- 15. ¿Cómo puedo cambiar el color de la fuente de un elemento UIBarButton?
- 16. Cambiar el color de fondo del cuadro de lista deshabilitado en el tema clásico de Windows
- 17. Cómo cambiar el color de la fuente de color/texto de la UIBarButtonItem en la barra de navegación
- 18. cómo cambiar el color de un QGraphicsTextItem
- 19. Cómo cambiar el color del texto/fuente en reportlab.pdfgen
- 20. Cambiar el color y la fuente de una parte del texto en WPF C#
- 21. ¿Cómo cambiar el color de la fuente del campo de la etiqueta de Blackberry dinámicamente?
- 22. ¿Cómo se cambia el tamaño de fuente y el color de fuente de un archivo Java?
- 23. ¿Cómo cambiar el color de la fuente en el cuadro de texto en C#?
- 24. Multi-color TextBox C#
- 25. Java establece color de fuente en un campo de texto deshabilitado
- 26. Windows Forms: cómo se cambia el color de la fuente para una etiqueta deshabilitada
- 27. ¿Cómo puedo cambiar el color de fuente de un TextRange en PowerPoint desde C#?
- 28. Cómo cambiar el color de la fuente de entrada deshabilitada en Firefox
- 29. cómo usar el color de fuente html
- 30. ¿Cómo puedo cambiar el color de la fuente en gridview DevExpress C#
respuesta de Cheeta es correcta. Considera cambiar de ropa? –