From the state of the text box, you cannot find difference between the text box which content was never modified by the user and the one with the text of empty string. The user could add some text and then delete it, consciously, and you would not detect the difference between this situation and the initial state of this control, if it is the same.
Therefore, for more fine-grain detection of the presence of some user input, you need to store this information (any kind of flag) outside of this control, say, in some instance member of your form. You would need to handle the "changed" event of the control. In the handler, you should modify this outside flag.
The exact technique to be used depends on what you mean by "VB" and what UI library you use. You can easily find out how to handle events, by reading documentation on the library you use.
[EDIT]
For example, you may need to handle one of these events:
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged%28v=vs.110%29.aspx[
^],
https://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.datacontextchanged%28v=vs.110%29.aspx[
^].
If you are using something else (not WPF, not
System.Windows.Forms
or some older version not having the event I referenced), you have to ask about it specifically.
—SA