You can easily build your controls or extend control like textbox by adding properties, methods or changing the render of it. The best way to understand how to do that is by exploring my custom controls on this github project:
If you like challenge or contribute, don't hesitate to participate on this project. It's the best way to expend your knowledge on custom controls.
GitHub - wet-boew/wet-boew-dotnet-controls: Web Controls .net adapted for Web Experience Toolkit (WET) including client validation
Web Controls .net adapted for Web Experience Toolkit (WET) including client validation - wet-boew/wet-boew-dotnet-controls
github.com
If you like challenge or contribute, don't hesitate to participate on this project. It's the best way to expend your knowledge on custom controls.