The 'simple' way I know of is to use a picturebox. Blt the background onto it to give a transparent effect. This method to make it transparent is effective as long as your background doesn't change frequently.

You can now draw the textbox frame as you like it - raised or sunken. You'll have to create the caret yourself using related API functions. Fill in the text in the KeyDown event. Better make it a user control.