2024年3月9日发(作者:)

技术分析 - 该使用+=还是Text?

前几天有一个网友在贴吧提出了在阻塞UI线程时属性和

Text存在差异的问题(/p/3221290195),引起了

我的兴趣,决定一探究竟。

1.源代码分析

Text的实现比较简单,直接调用的父类Text,

源代码如下:

它临时将输入点设置到文本的最后,然后设置SelectedText属性。SelectedText最

终调用的是SetSelectedTextInternal,实现代码如下:

使用的是windows消息EM_SETSEL。

而属性的设置则比较复杂,从TextBox到TextBoxBase再到Control

层层调用,主要的实现代码在Control类之中: