The AutomaticUpdater only checks on the startup of your app. If you have a long running app (a program that runs for weeks without the user closing it) then you should manually call ForceCheckForUpdate() at intervals following the initial check handled by the AutomaticUpdater.
When DaysBetweenChecks property in the AutomaticUpdater control is set to zero, what is the exact behaviour?
It will check on every startup when DaysBetweenChecks is 0.