ASP.NET Web 服务器控件中的 Tab 键顺序、焦点和访问键

更新:2007 年 11 月

若要增强在 ASP.NET 网页中使用控件的用户体验,可以指定用户通过按 Tab 键显示 ASP.NET Web 服务器控件的顺序,并可以指定最初打开页时页上的哪个控件具有焦点。

Tab 键顺序

当在浏览器中显示页时,用户可以使用 Tab 键(Windows 上的 Tab 键和 Shift+Tab 组合键)在页上的各控件之间移动焦点/选择。在大多数浏览器中,默认情况下,控件的 Tab 键顺序是控件在页中的显示顺序:即从页的左上方开始,一直到页的右下方。

通过设置控件的 TabIndex 属性,可以控制其 Tab 键顺序。在呈现控件时,TabIndex 值呈现为浏览器支持 Tab 键移动所需的属性。例如,在 Internet Explorer 中,TabIndex 值呈现为页上某元素的 tabindex 属性。

Tab 键顺序按顺序增长,因此当用户从一个 TabIndex 属性设置为 3 的控件移出时,焦点将移到 TabIndex 值为 4(或更大值)的控件。在许多浏览器(包括 Internet Explorer)中,Tab 键顺序包括位于浏览器工具栏上的控件。

对于某些控件,按 Tab 键可能会导致该控件执行回发。例如,如果将 TextBox 控件的 AutoPostBack 属性设置为 true,则从包含已更改文本的文本框移出会导致发送页。

焦点

在浏览器中呈现页时,由浏览器确定哪个控件应具有焦点。大多数情况下,浏览器最初将焦点放在浏览器窗口本身或该页的第一个控件上。即使在回发后也是如此,因为该页正在服务器上重新创建,因而浏览器将该页视为新页。(在回发后 Tab 键将导致一个异常,如本主题前面的“Tab 键顺序”部分中所述。)

如果在应用程序中的特定控件上具有焦点很重要,则可以通过服务器代码在该控件上设置焦点。有关详细信息,请参见如何:在 ASP.NET Web 服务器控件上设置焦点

并不是所有控件都可以接收焦点。可以在下列任一控件上设置焦点:

如果控件被隐藏,它将无法接收焦点。如果设置了焦点的控件不能直接接收焦点,但其子控件可以接收焦点,则第一个子控件将接收焦点。例如,如果在 Login 控件上设置了焦点,则位于 Login 控件中的第一个文本框将接收该焦点。

访问键

除了在 ASP.NET 网页中支持 Tab 键顺序之外,还可以添加对访问键(也称为热键)的支持。通过访问键,用户同时按 Alt 键和另一个键(如 Alt+S)即可跳到页上的特定控件,而无需使用鼠标。

有关详细信息,请参见如何:为 ASP.NET Web 服务器控件设置访问键

请参见

概念

ASP.NET 网页中的客户端脚本