Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从OnLostFocus事件c#silverlight组件一屏蔽文本框中设置焦点_C#_Silverlight_Componentone - Fatal编程技术网

从OnLostFocus事件c#silverlight组件一屏蔽文本框中设置焦点

从OnLostFocus事件c#silverlight组件一屏蔽文本框中设置焦点,c#,silverlight,componentone,C#,Silverlight,Componentone,我试图在c1屏蔽文本框内执行一些自定义验证,验证必须在OnLostFocus()上进行。问题是,当我从OnLostFocus()中调用Focus()时,它会导致控件再次失去/获得焦点,这是无限循环。任何帮助/建议都会很好 提前感谢 下面是我所拥有的基本代码: protected override void OnLostFocus(RoutedEventArgs e) { if (!CheckAndRunValidator()) {

我试图在c1屏蔽文本框内执行一些自定义验证,验证必须在OnLostFocus()上进行。问题是,当我从OnLostFocus()中调用Focus()时,它会导致控件再次失去/获得焦点,这是无限循环。任何帮助/建议都会很好

提前感谢

下面是我所拥有的基本代码:

    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();}