2014-02-20 2 views
0

사용자가 현재 페이지를 클릭 할 때 포커스가 없어야하는 텍스트 상자 (textBox1)가 있습니다. 문제는 다른 컨트롤러에 집중할 수 없다는 것입니다. because the textbox is the only control that allows input.편집 가능한 컨트롤 일 때만 텍스트 상자에서 포커스 제거

숨겨진 필드가 몇 개 있지만 초점을 맞추지 않아도 텍스트 상자 (hidden1.Focus())에서 포커스가 제거되지 않습니다.

어딘가에 컨트롤러를 비활성화하고 활성화 할 수 있지만 작동하지 않습니다.

아이디어가 있으십니까? 여기에 편집

는 컨트롤입니다 내가 가진 :

<asp:TextBox ID="TextBox1" runat="server" autocomplete="off"></asp:TextBox> 
<asp:Label ID="lblHide" runat="server"></asp:Label> 
<input type="hidden" id="hidden1" runat="server" value="false"/> 

//C# code 
protected void Page_Load(object sender, System.EventArgs e) 
{  
    TextBox1.TabIndex = -1; 
    lblHide.Focus(); 
} 
+0

무슨 뜻 이죠 " 제어 장치"? "통제"란 뜻이야? –

답변

0

는 텍스트 상자를 설정 ... 주 Textbox 컨트롤의 GotFocus() 이벤트에서이 코드를 삽입 할 수 있습니다

위는 ASP 컨트롤인지 HTML 컨트롤인지에 관계없이 사용중인 컨트롤의 유형에 따라 다릅니다. 다음과 같은 라벨을 추가하십시오.

<label id="lblHide" name="lblHide" hidden="hidden"> 

그런 다음 해당 레이블에 포커스를 설정하십시오.

<asp:TextBox ID="TextBox1" runat="server" TabIndex="-1" ReadOnly="True"></asp:TextBox> 
<asp:Label ID="Label1" runat="server"></asp:Label> 

다음 페이지로드에서이 :

UPDATE

그래서, 여기 당신을 위해 어떻게 보일까의

protected void Page_Load(object sender, EventArgs e) 
{ 
Label1.Focus(); 
} 
+0

나는 편집을 추가했다. 분명히 webcontrol에는 tabstop 속성이 없습니다. 내 질문에 편집을 추가하여 코드를 표시했습니다. –

+0

업데이트 방법을 반영하도록 업데이트하십시오. 사용자가 상자를 클릭하면 포커스가 텍스트 상자로 돌아갑니다. – James

+0

옵션 중 하나는 텍스트 상자를 레이블로 바꾸는 것입니다. 이것은 모두 함께 초점을 제거합니다. 그냥 텍스트 상자에 채워진 것을 가지고 레이블 대신 채 웁니다. 또한 텍스트 상자처럼 보이게 만들 수도 있습니다. 예 : ' 등 – James

0

가이 작업을 수행 할 수있는 몇 가지 방법이 있습니다,하지만 난 당신이 이미 가지고있는 따르겠다 ... 첫 확인 TextBox 컨트롤의 TabStop 속성이 False으로 설정되어 있습니다.

tabindex = -1 

또는

tabstop = false 
: 그런 다음 숨겨진 컨트롤에 대해, 당신은
hidden1.SelectText(); 
+0

숨겨진 필드에'hidden1.Select()'를 추가하려했지만 그런 방법이 없다는 오류가 나타납니다. 내 질문에 사용했던 컨트롤을 추가했습니다. –

+0

오, 미안 해요. 이건 WinForms에 있다고 생각했습니다. 방금 WebForms 태그를 발견했습니다. 이걸 추가 했니? 어쨌든 ... 나는 코드를 편집하고 그것을 시도한다 :) –

관련 문제