2009-09-08 8 views
4

WinForms (.NET 3.5)의 텍스트 상자에 포커스를 설정할 때마다 전체 텍스트가 선택됩니다. MultiLine을 true 또는 false로 설정해도 상관 없습니다. Making a WinForms TextBox behave like your browser's address bar.NET - WinForm 텍스트 상자 - 포커스 및 SelectedText

내가 할 노력했다 :

private void Editor_Load(object sender, EventArgs e) 
    { 
     //form load event 
     txtName.SelectedText = String.Empty; // has no effect 
    } 

나는이 성가신 행동을 중지하도록 설정할 수 있습니다 또 다른 속성이 있나요이 사용자가 보는 것의 정확한 반대 것 같다?

 txtName.Select(0,0); 
     txtScript.Select(0,0); 

하지만 난 정말 내 모든 텍스트 상자에()를 선택 호출 할 필요가 않습니다

난 그냥이 작품 발견?

+0

카일 Rozendo에 대한 의견을 참조하십시오. – BuddyJoe

답변

0

Select(0,0)을 사용하는 경우 글쎄, Focus()을 사용할 필요가 없으므로 문제가 보이지 않습니까? 그것은 여전히 ​​하나의 호출로 끝납니다.

+0

컨트롤이 채워지기 전에 TextBox.Text 값을 설정하기 때문에 이것이 나에게만 일어나는 것 같습니다. 메서드 또는 속성을 통해 수행하는 경우 중요하지 않습니다. 내가 전에 알아 차리지 못했던 것은 당연합니다. – BuddyJoe

+0

양식 이벤트 후 내 텍스트 상자 값을 설정하기 위해 어떤 형식의 이벤트를 사용할 수 있습니까? – BuddyJoe

+0

알았어. 텍스트 상자를 설정할 때, 생성자 또는로드 이벤트에서 언제입니까? 그것이 생성자라면 문제가 있습니다. –

2

Enter 이벤트를 재정의하는 사용자 지정 TextBox 컨트롤을 만듭니다. 이 같은

뭔가 :

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Windows.Forms; 

namespace YourNamespace 
{ 
    class MyTextBox : TextBox 
    { 

     protected override void OnEnter(EventArgs e) { 
      this.Select(0, 0); 

      base.OnEnter(e); 
     } 

    } 
} 
+0

좋고 잘해야하지만 원래 문제는 해결되지 않습니다. –

+0

질문을 읽으면서 많은 TextBox가 입력 될 때 모든 텍스트를 선택하지 못하게하는 것이 문제입니다. 내 솔루션은 많은 후프 점핑없이이 문제를 해결합니다. (OP의 코드에 내 솔루션을 실행 불가능하게 만들 수있는 다른 것이있을 수 있지만, 고려해 볼 가치가 있다고 생각합니다.) –