为什么TextBoxes有TextLength属性?它是否比通过Text.Length获取Text的长度有什么优势?
答案 0 :(得分:15)
这个WinForms控件的后面是一个Win32编辑控件。
Win32编辑控件通过WM_GETTEXTLENGTH
和WM_GETTEXT
消息公开其文本。您需要先发送WM_GETTEXTLENGTH
,以便知道要分配的缓冲区有多大。然后,您可以发送WM_GETTEXT
来填充缓冲区。
如果您只想要文本的长度,只需发送WM_GETTEXTLENGTH
消息就可以获得它而无需分配缓冲区。
.net控件只是反映了这个底层控件的行为。对于具有大量文本的多行控件,能够获得文本长度而不必分配和填充缓冲区对于性能非常有用。