작은 DataForm이 있는데 첫 번째 TextBox에 포커스를 설정하려고합니다. 저는 Novermber 2009 Toolkit을 사용하고 있습니다. TextBox의 이름을 지정하고 DataForm의로드 된 이벤트에서 .Focus()를 사용하여 시도했습니다. 나는 그것이 한 커서 '깜박'에 대한 초점을 얻은 다음 사라 졌다고 봅니다. 이것이 DataForm 또는 다른 것의 인공물 인 경우 해결하려고합니다. 내가 이것을 할 수 있어야하는지 아는 사람 있습니까?DataForm의 TextBox에 포커스를 지정하려면 어떻게합니까?
답변
사용자 정의 포커스 설정 기능 (FocusEx)을 호출 해보십시오.
internal static class ControlExt
{
// Extension for Control
internal static bool FocusEx(this Control control)
{
if (control == null)
return false;
bool success = false;
if (control == FocusManager.GetFocusedElement())
success = true;
else
{
// To get Focus() to work properly, call UpdateLayout() immediately before
control.UpdateLayout();
success = control.Focus();
}
ListBox listBox = control as ListBox;
if (listBox != null)
{
if (listBox.SelectedIndex < 0 && listBox.Items.Count > 0)
listBox.SelectedIndex = 0;
}
return success;
}
}
그게 효과가 있습니다. 나는 성공적으로 사용했던 약간의 트릭이 텍스트 상자의로드 이벤트에 가입하는 것입니다
제안 해 주셔서 감사합니다. 나는 그것을 시도했지만 도움이되지 않았다 : 나는 같은 결과를 얻는다. TextBox가 잠깐 동안 포커스를 잃어 버렸습니다. .Focus() 또는 코드를 사용하여 .FocusEx() 문을 주석으로 처리하면 포커스가 전혀 나타나지 않으므로 처음부터 작업하고 있음을 알 수 있습니다. 뭔가 다른 것을 훔치려는 것이 분명하지만 나는 그것이 무엇인지 알아내는 방법을 모른다. – serialhobbyist
은 다음 이벤트 처리기에서, 나는 이와 같은 코드로 포커스를 설정 짐 맥 커디
:
private void TextBox_Loaded(object sender, RoutedEventArgs e)
{
TextBox usernameBox = (TextBox)sender;
Dispatcher.BeginInvoke(() => { usernameBox.Focus(); });
}
나는 많은 제안을 시도했다. Dispatcher, UpdateLayout 등을 사용하여 다양한 인터넷 사이트에 떠 다니고 그들 중 누구도 나를 위해 안정적으로 작업하지 못했습니다. 결국 나는 다음에 정착했다.
private bool _firstTime = true;
private void MyChildWindow_GotFocus(object sender, RoutedEventArgs e)
{
if (_firstTime)
{
try
{
var dataForm = MyDataForm;
var defaultFocus = dataForm.FindNameInContent("Description") as TextBox;
defaultFocus.Focus();
}
catch (Exception)
{
}
finally
{
_firstTime = false;
}
}
}
잘 모르지만 ... 작동합니다. SL4에서 Focus() 메서드를 사용할 때 타이밍 문제가있는 것으로 보입니다.
이것은 나를 위해 일했습니다. 핵심은 GotFocus 이벤트의 올바른 TextBox에 포커스를 설정하는 것입니다. –
- 1. 단추를 누른 후 어떻게 TextBox에 포커스를 유지합니까?
- 2. jquery를 사용하여 HTML 캔버스에 키보드 포커스를 지정하려면 어떻게해야합니까?
- 3. 폼로드시 TextBox에 포커스를 두는 방법? 내 C# 프로그램의 텍스트 상자에이
- 4. Tab을 선택한 후에 어떻게 textBox에 포커스를 둘 수 있습니까?
- 5. XSD에서 요소에 CDATA 만 포함되도록 지정하려면 어떻게합니까?
- 6. Entity Framework에서 연결에 조건을 지정하려면 어떻게합니까?
- 7. 레이어 (특히 그림자)의 순서를 지정하려면 어떻게합니까?
- 8. 저장할 QListWidgetItem을 추가 데이터로 사용자 지정하려면 어떻게합니까?
- 9. 기본 키 제약 조건에 이름을 지정하려면 어떻게합니까?
- 10. RunWith를 사용하여 테스트 방법 모음을 지정하려면 어떻게합니까?
- 11. 그라디언트가있는 선택 상자의 스타일을 지정하려면 어떻게합니까?
- 12. 하이퍼 링크를 항상 절대 경로로 지정하려면 어떻게합니까?
- 13. clickOnce 응용 프로그램의 대상 폴더를 지정하려면 어떻게합니까?
- 14. PHP 양식 RESULTS 페이지의 스타일을 지정하려면 어떻게합니까?
- 15. JS/jQuery를 사용하여 pageload에 스크롤 div 포커스를 지정하려면 어떻게해야합니까?
- 16. DataPager 및 DataGrid/DataForm의 오류
- 17. UITextView 포커스를 프로그래밍 방식으로 제공하려면 어떻게합니까?
- 18. ListView 컨트롤의 모든 항목에서 포커스를 제거하려면 어떻게합니까?
- 19. 키보드 포커스를 단일 구성 요소에 유지하려면 어떻게합니까?
- 20. WPF : DataGrid의 포커스를 특정 행으로 설정하려면 어떻게합니까?
- 21. 소수점 이하 두 자리 만 사용하도록 숫자 서식을 지정하려면 어떻게합니까?
- 22. NCOVER 병합 작업에 많은 수의 파일을 지정하려면 어떻게합니까?
- 23. JPA 엔티티에 대해 orm xml에 다중 열 ID를 지정하려면 어떻게합니까?
- 24. SharePoint 2007 사용자 지정 목록의 열 표시를 사용자 지정하려면 어떻게합니까?
- 25. 키 체인 권한 부여 대화 상자에서 사용할 아이콘을 지정하려면 어떻게합니까?
- 26. xsl : text 태그 사이에서 텍스트 서식을 지정하려면 어떻게합니까?
- 27. 레코드가 들어오는 순서대로 데이터베이스 항목에 순환 카테고리를 지정하려면 어떻게합니까?
- 28. Interface Builder에서 UI 요소의 방향 변경 위치를 지정하려면 어떻게합니까?
- 29. p 태그를 사용하지 않고 텍스트를 오른쪽에서 왼쪽으로 방향을 지정하려면 어떻게합니까?
- 30. Visual Studio에서 컨트롤의 기본 글꼴과 크기를 지정하려면 어떻게합니까?
해결 방법을 찾으셨습니까? –
나는 똑같은 문제가있다. codeplex 프로젝트 페이지에 문제가 작성되었습니다. http://silverlight.codeplex.com/workitem/8365 –