Hey Kyle,
Found another way to do it. It basically does teh exact same thing, and at first I wasn't really sure if it had any advantage. But after I thought about it, it kinda does. Basically, you can write function that will accept a control and passback the javascript to set focus to the page. I have a C# DLL that has this function (which a friend sent me from dotnetmonkeys(?)):
using System;
using System.Web.UI;
namespace ToolBox
{
public class PageToolbox
{
public static void SetInitialFocus(Control control)
{
if (control.Page == null)
{
throw new ArgumentException("The Control must be
added to a Page before you can set the IntialFocus
to it."

;
}
if (control.Page.Request.Browser.JavaScript == true)
{
control.Page.RegisterClientScriptBlock
("InitialFocus","<SCRIPT FOR='window' EVENT='onload'
LANGUAGE='JScript'>document.all." + control.UniqueID
+ ".focus();</SCRIPT>"

;
}
}
}
}
In my application, I set a reference to this new dll, and import the class that i have this function housed in. Once I have that set up, I can put this line of code in my PageLoad sub in my .vb file:
Class.SetInitialFocus(txtUserID)
This will then set the focus to my textbox called txtUserID on startup.
Now I know what you're saying: Isn't it easier to just write the 5 lines of code over and over again?! Well, it depends: If you aren't going to be using Visual Studio.NET for your development, this probably won't help. But I'm finding that when I use VS.NET, its much easier and cleaner to just keep all my code on teh .vb file side of things, and not the html side. Also, the ability to create generic code that accepts a few parameters and dynamically creates javascript for ANY situation you could want is a very tempting thought.
Anyway, just wanted to share another way of looking at this "set focus" thing with you.
Talk later,
Jack