textbox1
데이터를 LostFocus
이벤트에 바인딩하고 있습니다. 키보드 탐색을 설정했습니다. textbox1
및 textbox2
키보드의 경우 Tabindex=7
네비게이션 TabIndex=8
입니다. 이제 내 문제는 textbox1
에 대한 정규 표현식 유효성 검사를하고 있습니다. textbox1
에 잘못된 문자를 입력하면 해당 문자가 유효하지 않습니다. MessageBox
은 유효하지 않습니다. 확인을 클릭하면이 키보드 탐색을 textbox1
으로 설정하려는 유효한 textbox2
으로 이동합니다. 문자. 내가 어떻게 이걸 얻을 수 있니? 텍스트가 잘못 입력하면 내가 txtbox1
에 키보드 탐색을 설정하는 방법코드에서 키보드 네비게이션을 설정하는 방법.
if (!string.IsNullOrEmpty(txtbox1.Text))
{
if(Regex.IsMatch(txtbox1.Text, @"^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"))
{
txtbox2.Text = "(" + txtbox1.Text + ")";
}
else
{
MessageBoxResult mbr;
mbr=MessageBox.Show("please enter valid Email Id", "VMS", MessageBoxButton.OK, MessageBoxImage.Error);
if (mbr == MessageBoxResult.OK)
{
Keyboard.Focus(txtbox1);
txtbox1.Clear();
// txtbox1.TabIndex = 7;
//txtbox1.MoveFocus(new TraversalRequest(FocusNavigationDirection.Up));
// txtbox2.MoveFocus(new TraversalRequest(FocusNavigationDirection.Previous));
}
//txtbox1.Focus();
// KeyboardNavigation.SetTabIndex(txtbox1, 6);
}
}
else
{
txtbox2.Text = string.Empty;
// txtbox1.TabIndex = 7;
//txtbox1.MoveFocus(new TraversalRequest(FocusNavigationDirection.Previous));
//KeyboardNavigation.SetTabIndex(txtbox1, 7);
// txtbox2.TabIndex=7;
//Keyboard.Focus(txtbox2);
}
:
나는이 방법을 시도? 어떠한 제안.는 편집 : 추가 나는 새로운 프로젝트에 코드를 복사 TextBoxes
의 몇 가지를 추가 할 때
<Window x:Class="DataBinding.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<TextBox Name="txtbox1" Margin="71,22,82,195" LostFocus="txtbox1_LostFocus" />
<TextBox Name="txtbox2" Margin="71,96,82,127" />
</Grid>
을 제안하지만 나에 대한 여전히를 textbox2 ..로 이동합니다. 두 텍스트 상자에 대해 xaml에서 keyboardNavigation.TabIned를 제거했습니다. – kida
xaml 코드도 추가했습니다. LostFocus의 코드를 사용하고 있습니다. tet32box1의 이벤트 – kida
LostFocus 이벤트를 변경하면 LostKeyBoardFocus 이벤트가 작동합니다. 암호. – kida