Never "fill in" a textbox: the value should only be assigned when the data is committed to the DB. If you try to decide before that point, as soon as you start working in a multiuser environment you will get intermittent problems as two stations end up trying to use the same userID. If you don't spot it, this can seriously compromise your database integrity, and you will have real problems.
And think about it: why the heck would a user want to know what his userID is going to be before he actually signs up? It's only relevant to anyone after he is a "full member".
So as jgakenhe said: use a IDENTITY field at the DB to allocate unique id numbers, and format them to display in C# or SQL:
string ID = string.Format("AA{0:D3}", idValueFromDB);
SELECT 'AA' + RIGHT('000' + CAST(IdValue AS NVARCHAR(3)),3) AS ID FROM MyTable