我的解决方法如下:
如果都不改 TextBox的TabIndex的话,默认都是为0
那么,TextBox控件的Tab键顺序就是 从左到右,然后从上到下。
那么我们要自己设置Tab键的顺序,怎么办呢?
要把每个TextBox的TabIndex都不能设置为0(切记),顺序是TabIndex的从小到大的顺序,不连贯也行
环境 vs2003 代码如下:
<%
@ Page language="c#" Codebehind="回车换行.aspx.cs" AutoEventWireup="false" Inherits="Demo.回车换行"
%>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< title > 回车换行 </ title >
< meta name ="GENERATOR" Content ="Microsoft Visual Studio .NET 7.1" >
< meta name ="CODE_LANGUAGE" Content ="C#" >
< meta name ="vs_defaultClientScript" content ="JavaScript" >
< meta name ="vs_targetSchema" content ="http://schemas.microsoft.com/intellisense/ie5" >
< script language ="javascript" >
function fnA()
{
if(event.keyCode ==13)
{
event.keyCode =9;
}
}
</ script >
</ HEAD >
< body MS_POSITIONING ="GridLayout" >
< form id ="Form1" method ="post" runat ="server" >
< asp:TextBox id ="TextBox1" style ="Z-INDEX: 100; LEFT: 40px; POSITION: absolute; TOP: 24px" runat ="server"
tabIndex ="1" ></ asp:TextBox >
< asp:TextBox id ="TextBox6" style ="Z-INDEX: 106; LEFT: 248px; POSITION: absolute; TOP: 128px"
runat ="server" tabIndex ="5" ></ asp:TextBox >
< asp:TextBox id ="TextBox2" style ="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 72px" runat ="server"
tabIndex ="4" ></ asp:TextBox >
< asp:TextBox id ="TextBox3" style ="Z-INDEX: 102; LEFT: 248px; POSITION: absolute; TOP: 24px" runat ="server"
tabIndex ="2" ></ asp:TextBox >
< asp:TextBox id ="TextBox4" style ="Z-INDEX: 103; LEFT: 248px; POSITION: absolute; TOP: 72px" runat ="server"
tabIndex ="3" ></ asp:TextBox >
< asp:TextBox id ="TextBox5" style ="Z-INDEX: 105; LEFT: 40px; POSITION: absolute; TOP: 128px" runat ="server"
tabIndex ="6" ></ asp:TextBox >
</ form >
</ body >
</ HTML >
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< title > 回车换行 </ title >
< meta name ="GENERATOR" Content ="Microsoft Visual Studio .NET 7.1" >
< meta name ="CODE_LANGUAGE" Content ="C#" >
< meta name ="vs_defaultClientScript" content ="JavaScript" >
< meta name ="vs_targetSchema" content ="http://schemas.microsoft.com/intellisense/ie5" >
< script language ="javascript" >
function fnA()
{
if(event.keyCode ==13)
{
event.keyCode =9;
}
}
</ script >
</ HEAD >
< body MS_POSITIONING ="GridLayout" >
< form id ="Form1" method ="post" runat ="server" >
< asp:TextBox id ="TextBox1" style ="Z-INDEX: 100; LEFT: 40px; POSITION: absolute; TOP: 24px" runat ="server"
tabIndex ="1" ></ asp:TextBox >
< asp:TextBox id ="TextBox6" style ="Z-INDEX: 106; LEFT: 248px; POSITION: absolute; TOP: 128px"
runat ="server" tabIndex ="5" ></ asp:TextBox >
< asp:TextBox id ="TextBox2" style ="Z-INDEX: 101; LEFT: 40px; POSITION: absolute; TOP: 72px" runat ="server"
tabIndex ="4" ></ asp:TextBox >
< asp:TextBox id ="TextBox3" style ="Z-INDEX: 102; LEFT: 248px; POSITION: absolute; TOP: 24px" runat ="server"
tabIndex ="2" ></ asp:TextBox >
< asp:TextBox id ="TextBox4" style ="Z-INDEX: 103; LEFT: 248px; POSITION: absolute; TOP: 72px" runat ="server"
tabIndex ="3" ></ asp:TextBox >
< asp:TextBox id ="TextBox5" style ="Z-INDEX: 105; LEFT: 40px; POSITION: absolute; TOP: 128px" runat ="server"
tabIndex ="6" ></ asp:TextBox >
</ form >
</ body >
</ HTML >
using
System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Demo
{
/**//// <summary>
/// 回车换行 的摘要说明。
/// </summary>
public class 回车换行 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.TextBox TextBox3;
protected System.Web.UI.WebControls.TextBox TextBox4;
protected System.Web.UI.WebControls.TextBox TextBox5;
protected System.Web.UI.WebControls.TextBox TextBox6;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!this.Page.IsPostBack)
{
TextBox[] tbs = new TextBox[]{this.TextBox1,this.TextBox2,this.TextBox4,this.TextBox3,this.TextBox5,this.TextBox6};
for(int i = 0 ;i<= tbs.Length-1;i++)
{
tbs[i].Attributes.Add("onkeydown","fnA();");
}
}
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Demo
{
/**//// <summary>
/// 回车换行 的摘要说明。
/// </summary>
public class 回车换行 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.TextBox TextBox3;
protected System.Web.UI.WebControls.TextBox TextBox4;
protected System.Web.UI.WebControls.TextBox TextBox5;
protected System.Web.UI.WebControls.TextBox TextBox6;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!this.Page.IsPostBack)
{
TextBox[] tbs = new TextBox[]{this.TextBox1,this.TextBox2,this.TextBox4,this.TextBox3,this.TextBox5,this.TextBox6};
for(int i = 0 ;i<= tbs.Length-1;i++)
{
tbs[i].Attributes.Add("onkeydown","fnA();");
}
}
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}