Why does it need to be a property of the control? You mentioned in your other thread that the fields that are required vary by access control level. Make and store your own array of controls that are required for the specific user. It would be way easier.
i spoke about container control.
the text box have a background, maybe you can use other color to indicate required input.
or make a label with * or bold text.
What are you trying to do?
Have the red rectangle if it is empty and if something is there remove the red rectangle?
You need to edit the container class on the example.
try to make a method that give you the border color based on the flag and text size.
add a method PaintStatus(g as graphics)
add a interface
any change that effect the border call Refresh immediately false to the window.
in the windows paint event use for each at controls with variable of interface type
call this PaintStatus in yout class object with argument g from the window paint event.
this works only if the window is the parent from textbox and the input does not part of a frame.
instead of red rectangle, maybe you could link a other object/control/icon as required indicator and just make it visible or not via user defined event.