从OnLostFocus事件c#silverlight组件一屏蔽文本框中设置焦点
我试图在c1屏蔽文本框内执行一些自定义验证,验证必须在OnLostFocus()上进行。问题是,当我从OnLostFocus()中调用Focus()时,它会导致控件再次失去/获得焦点,这是无限循环。任何帮助/建议都会很好 提前感谢 下面是我所拥有的基本代码:从OnLostFocus事件c#silverlight组件一屏蔽文本框中设置焦点,c#,silverlight,componentone,C#,Silverlight,Componentone,我试图在c1屏蔽文本框内执行一些自定义验证,验证必须在OnLostFocus()上进行。问题是,当我从OnLostFocus()中调用Focus()时,它会导致控件再次失去/获得焦点,这是无限循环。任何帮助/建议都会很好 提前感谢 下面是我所拥有的基本代码: protected override void OnLostFocus(RoutedEventArgs e) { if (!CheckAndRunValidator()) {
protected override void OnLostFocus(RoutedEventArgs e)
{
if (!CheckAndRunValidator())
{
Focus();
SelectAll();
return;
}
base.OnLostFocus(e);
}
你可以试试
Dispatcher.BeginInvoke( () => Focus() );
如果这不起作用,请尝试使用间隔较短的调度程序,并在勾选事件中进行聚焦。如果(!CheckAndRunValidator()){var dispatchermer=new dispatchermer{Interval=new TimeSpan(300)};dispatchermer.Tick+=(发送方,args)=>{Dispatcher.BeginInvoke(()=>Focus());dispatchermer.Stop();};dispatchermer.Start();}