I have designed an desktop application using C#.net that has many users. Each USer has specific rights. The User logs into the system when the application first starts and the UserID number is stored and used throughout the app., but when they want to change user (UserID) they have to close the system down and start again. How would I go about creating a 'log out' - 'login' function that keeps the main form open but disabled allowing a new user to login?
It rather depends on the exact nature of the application, but the easiest way to do this would be to open a modal dialog when the user logs out for entry of user credentials.
There would have to be two options on the dialog, "login" and "close application" - there's going to have to be some housekeeping to go with, but basically if the credentials are ok you can close the dialog and if not you leave it up - as the dialog is Modal the user won't be able to do anything with the main form.
The answer largely depends on the architecture of the application, and your needs. If you can just change that UserID number while running, then you can close all forms, perform pending operations for current user, and show some modal dialog where you ask for user credentials. Most apps do this by showing the form that was used to login on app start (usually some kind of splash screen).