为什么.Net文本框有TextLength和Text.Length?

Cor*_*urn 6 .net textbox winforms

为什么TextBoxes有TextLength属性?它是否比通过Text.Length获取Text的长度更有优势?

Dav*_*nan 16

这个WinForms控件的背后是Win32编辑控件.

Win32编辑控件通过WM_GETTEXTLENGTHWM_GETTEXT消息公开其文本.您需要先发送,WM_GETTEXTLENGTH以便知道要分配多大的缓冲区.然后你可以发送WM_GETTEXT填充缓冲区.

如果您只想要文本的长度,则可以通过仅发送WM_GETTEXTLENGTH消息来获取它而无需分配缓冲区.

.net控件只是反映了这个底层控件的行为.对于具有大量文本的多行控件,能够获得文本长度而不必分配和填充缓冲区对于性能非常有用.