2010-06-21 21 views

Respuesta

26

Como se dice en el siguiente mensaje en el foro:

En el contexto de un cuadro de texto, de sólo lectura permite al usuario ajustar el enfoque y a seleccionar y copiar el texto, pero no modificarlo. Un TextBox deshabilitado no permite ninguna interacción de ningún tipo.

Utilice ReadOnly cuando tenga datos que desee que el usuario vea y copie, pero no los modifique. Use un cuadro de texto deshabilitado, cuando los datos que está mostrando son no aplicables en el estado actual de un cuadro de diálogo o ventana.

tomado de: MSDN Forums

+0

Tiene la respuesta a continuación, solo agregaré que siempre puede establecer 'disabled ', pero no todos los controles tienen una etiqueta' readonly', lo cual es una pena. Le aconsejo que no los mezcle en una página (sin una buena razón), ya que podría confundir a un usuario. – Mawg

1

especifica habilitados si se permite la interacción del usuario. Si un control está deshabilitado, no generará ningún evento de UI.

ReadOnly determina si el usuario puede editar el contenido del control. Por ejemplo, un ReadOnly TextBox no se puede editar, pero aún puede hacer clic en él, seleccionar el texto contenido en él, etc.

2

ReadOnly Generalmente me asocio con un TextBox u otro control que contenga texto; dicta si el usuario puede o no modificar el texto mostrado por el control. Sin embargo, el usuario puede seleccionar el texto (por ejemplo, para copiarlo y pegarlo en otro programa).

Enabled básicamente controla si es posible o no cualquier interacción del usuario con el control. Por ejemplo, no se puede hacer clic en Button con Enabled == false; un CheckBox con Enabled == false no se puede alternar, etc. Tenga en cuenta que un TextBox con Enabled == false tampoco puede tener su texto seleccionado (que sería la interacción del usuario).

Además, los controles con Enabled == false no generan eventos relacionados con la interacción del usuario, como Click.

0

Si toma un cuadro de texto con una barra de desplazamiento como ejemplo, ReadOnly no permite que el usuario edite texto, pero la barra de desplazamiento todavía está activa (piense en los cuadros de licencia en los programas de instalación). Enabled = false hará que se deshabilite todo el control, no solo el área de edición de texto.

1

Algunos controles, por ejemplo, botones, solo se pueden habilitar o deshabilitar. Un control deshabilitado dará una indicación visual de que no se puede interactuar en este momento (generalmente por encanecimiento/desvanecimiento). Otros también pueden ser de solo lectura, ya que pueden interactuar de alguna manera con pero no editados. Por ejemplo, un control de arriba hacia abajo es a menudo así, lo que significa que puede presionar los botones para cambiar el valor pero no editarlo escribiendo normalmente.(También es posible tener controles con los que nunca se puede interactuar pero que todavía son útilmente desactivables, una etiqueta aún puede aparecer atenuada como parte de indicar que un área completa de la GUI no se puede utilizar en este momento, que es una efecto visual agradable que simplemente cambiar los controles que son interactivos.)

Es prácticamente siempre el caso de que estar deshabilitado implica que un control también es de solo lectura. He visto algunos casos en los que eso no era cierto, y siempre me pareció más un error que otra cosa. Lo mejor es considerar que los estados representan un valor de tres estados donde uno de los estados no se utiliza para algunos controles.

0

Además, leo here que si un cuadro de texto está marcado Enabled = "false", su valor no se conserva en Viewstate en las devoluciones.

+4

La pregunta es acerca de * WinForms *, no * WebForms * –

Cuestiones relacionadas