方法 : ASP.NET Web サーバー コントロールにフォーカスを設定する
更新 : 2007 年 11 月
アプリケーションでは、必要に応じて特定の ASP.NET Web サーバー コントロールにサーバー コードを使用してフォーカスを設定できます。フォーカスはコントロールに動的に配置できますが、既定でフォーカスを受け取るコントロールを指定することもできます。既定のフォーカスはフォーム全体に設定できますが、Panel コントロールの子コントロールに設定することもできます。
フォーカスは、次のような型のコントロールに配置できます。
Button、LinkButton、および ImageButton の各コントロール
CheckBox コントロール
DropDownList コントロール
FileUpload コントロール
HyperLink コントロール
ListBox コントロール
RadioButton コントロール
TextBox コントロール
これらのコントロールを 1 つ以上含むコントロールにフォーカスを設定することもできます。たとえば、Login コントロールにフォーカスを設定できます。この場合、フォーカスは Login コントロールでフォーカスを受け取ることができる最初のコントロールに配置されます。
一般に、フォーカスを受け取ることができないコントロール、隠しコントロール、または無効のコントロールにフォーカスを設定すると、呼び出しは無視されます。データ ソース コントロールなどの非表示コントロールにフォーカスを設定すると、例外がスローされます。
メモ : |
---|
フォーカスを設定するには、ブラウザでクライアント スクリプトを有効にする必要があります。 |
ASP.NET Web サーバー コントロールにフォーカスを設定するには
コントロールの Focus メソッドを呼び出します。
または
ページの SetFocus メソッドを呼び出し、フォーカスを設定するコントロールの ID を渡します。
ID が TextBox1 のコントロールにフォーカスを設定するコード例を次に示します。
セキュリティに関するメモ : この例には、ユーザー入力を受け付けるテキスト ボックスがあるため、セキュリティ上の脅威になる可能性があります。既定では、ASP.NET Web ページは、ユーザー入力にスクリプトまたは HTML 要素が含まれていないことを検証します。詳細については、「スクリプトによる攻略の概要」を参照してください。
[Visual Basic] Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) TextBox1.Focus() End Sub
protected void Page_Load(object sender, EventArgs e) { TextBox1.Focus(); }
フォームまたはパネルに既定のフォーカスを設定するには
ページの form 要素または Panel コントロールの DefaultFocus 属性を設定します。
TextBox1 コントロールに既定のフォーカスが設定されたページのコード例を次に示します。
<%@ Page Language="VB" %> <html> <head runat="server"> <title>Test Page</title> </head> <body> <form id="form1" runat="server" defaultfocus="TextBox1" > <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="Button" /> <br /> </div> </form> </body> </html>
<%@ Page Language="C#" %>
<html>
<head runat="server">
<title>Test Page</title>
</head>
<body>
<form id="form1" runat="server" defaultfocus="TextBox1" >
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
<br />
</div>
</form>
</body>
</html>