Hola.
Algo debe estar pasando, fijate que estes colocando bien el nombre de tu TextBox. Te dejo un ejemplo muy simple pero que funciona, pone el foco al editar el textbox3 que es el de la edad:
Código:
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Collections.Generic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If Not IsPostBack Then
GridView1.DataSource = ObtenerDatos()
GridView1.DataBind()
End If
End Sub
Private Function ObtenerDatos() As ArrayList
Dim xDatos As New ArrayList
xDatos.Add("Uno")
xDatos.Add("Dos")
Return xDatos
End Function
Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs)
GridView1.EditIndex = e.NewEditIndex
GridView1.DataSource = ObtenerDatos()
GridView1.DataBind()
GridView1.Rows(e.NewEditIndex).FindControl("TextBox3").Focus()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Página sin título</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowediting="GridView1_RowEditing">
<Columns>
<asp:TemplateField HeaderText="Nombre">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text=''></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text=''></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Apellido">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text=''></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text=''></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Edad">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text=''></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text=''></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>