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

时间:2011-05-27 15:16:38

标签: .net winforms textbox

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

1 个答案:

答案 0 :(得分:15)

这个WinForms控件的后面是一个Win32编辑控件。

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

如果您只想要文本的长度,只需发送WM_GETTEXTLENGTH消息就可以获得它而无需分配缓冲区。

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