¿Por qué TextBoxes tiene una propiedad TextLength? ¿Ofrece alguna ventaja sobre obtener la longitud del texto a través de Text.Length?¿Por qué los cuadros de texto .Net tienen TextLength versus Text.Length?
Respuesta
Detrás de este control de WinForms es un control de edición Win32.
El control de edición Win32 expone su texto a través de los mensajes WM_GETTEXTLENGTH
y WM_GETTEXT
. Primero debe enviar WM_GETTEXTLENGTH
para que sepa cuán grande es el buffer que debe asignar. Luego puede enviar WM_GETTEXT
para llenar el búfer.
Si solo desea la longitud del texto, puede obtenerlo sin asignar un búfer enviando solo el mensaje WM_GETTEXTLENGTH
.
El control .net simplemente refleja el comportamiento de este control subyacente. Para un control de varias líneas con mucho texto, poder obtener la longitud del texto sin tener que asignar y llenar el búfer podría ser muy útil para el rendimiento.
¿Dónde puedo encontrar información como esta? La documentación de .Net no entra en este nivel de detalle. –
@Corey Este tipo de conocimiento solo se obtiene realmente mediante la programación en contra de la API de Win32. Es difícil obtenerlo cuando se trabaja con WinForms. Aunque puede programar la API de Win32 desde .net, es desordenado. Personalmente aprendí todo mi Win32 a través de Delphi VCL y no tengo experiencia en C#, .net, WinForms, etc. –
- 1. .NET MVC enmascaramiento cuadros de texto Contraseña
- 2. ¿Por qué IE hace que los cuadros de contraseña sean más pequeños que los cuadros de texto?
- 3. ¿Por qué los cuadros de diálogo modales son malos?
- 4. ¿Por qué los eventos de WebControl tienen el prefijo "Encendido"?
- 5. .Net Parse versus Convert
- 6. ¿Por qué los eventos no tienen tipos de devolución en .NET?
- 7. ¿Por qué los registros de Delphi no tienen herencia?
- 8. ¿Por qué los controles WPF no tienen propiedad de etiqueta?
- 9. ¿Por qué los finalizadores tienen una "penalización severa de rendimiento"?
- 10. Por qué los métodos de interfaz no tienen cuerpo
- 11. ¿por qué los archivos de encabezado STL no tienen extensión?
- 12. ¿Por qué los elementos ul no tienen altura?
- 13. ¿Por qué las tuplas tienen uses_allocator pero los pares no?
- 14. ¿Por qué los números hexadecimales tienen el prefijo 0x?
- 15. Aplicar UpdateSourceTrigger = PropertyChanged a todos los cuadros de texto wpf
- 16. seleccionar todos los cuadros de texto en css
- 17. ¿Por qué los ayudantes no tienen html en ellos?
- 18. ¿Por qué los métodos ruby no tienen alcance léxico?
- 19. ¿Por qué los navegadores web no tienen jQuery incorporado?
- 20. Bucle a través de cuadros de texto
- 21. ¿Por qué las cadenas C# /. Net tienen el prefijo de longitud y el nulo terminado?
- 22. bucle sobre todos los cuadros de texto en un formulario, incluidos los que están dentro de un grupo de cuadros
- 23. ¿Por qué molestarse con los inicializadores? (.net)
- 24. Validar múltiples cuadros de texto usando errorprovider
- 25. Permitir HTML en cuadros de texto
- 26. ¿Por qué los cuadros de diálogo del asistente se llaman "asistentes"?
- 27. ¿Por qué los literales de los números no tienen acceso a los métodos numéricos?
- 28. ¿Qué lenguajes de programación .NET tienen un proveedor CodeDom?
- 29. Encuadernación en cuadros de texto no funcionan
- 30. jquery área de texto de crecimiento automático versus texto inicial
¿A qué tipo de cuadro de texto se refiere? WPF? ¿Formularios de Windows? –
@John Presumiblemente WinForms ya que ese es el que realmente tiene la propiedad 'TextLength'. –
Debería haber especificado, pero sí, WinForms. –