2011-06-14 77 views
0

的如何使重点消失:我需要摆脱焦点

<Textbox Name="Textbox1" /> 

或者,如果我不能让对焦走开其中任何事情的重点是前?

回答

0

您可以使用FocusManager,然后将焦点设置到别的东西。我不确定何时想要更改焦点或代码中要拨打电话的位置,但我将FocusManager调用到表单背后的代码中,并将其焦点设置为自己,并且它似乎工作正常精细。

例如如果您添加到您的KeyUp事件当您按下

private void TextBox_KeyUp(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.A) 
      FocusManager.SetFocusedElement(this, this); 
    } 
0

你可以更改与文本框

+0

给我一个例子 – uis 2011-06-14 16:09:34

+0

有一个在@Drahakar发给你的链接的例子你的文本框会失去焦点。你看过吗? – lhan 2011-06-14 16:15:38

+0

这是示例(不知道这应该对我有什么帮助):Private Sub Control1_GotFocus(sender as Object,e as EventArgs)_手写控件1.GotFocus Console.WriteLine(“您位于Control.GotFocus事件。“) End Sub – uis 2011-06-14 16:20:41

1

难道的GotFocus(http://msdn.microsoft.com/en-us/library/system.windows.forms.control.gotfocus.aspx)事件的焦点你尝试设置IsTabStop = False和Focusable = false?

你也可以检查:

http://msdn.microsoft.com/en-us/library/aa969768.aspx

+0

如何将Textbox1设置为false? (我试了一些东西,并没有工作) – uis 2011-06-14 16:08:46

+0

这只是禁用焦点,我不能再次使用这个文本框,除此之外,它使焦点thingy冻结。 – uis 2011-06-14 16:16:58

+0

您可能不需要Focusable = false,完全禁用文本框的焦点。你有什么场景? – 2011-06-14 19:50:36

0

可以使用SetFocusedElement属性将焦点设置到其他一些控制。

http://msdn.microsoft.com/en-us/library/aa969768.aspx

还检查了FocusManager.SetIsFocusScope方法 http://msdn.microsoft.com/en-us/library/system.windows.input.focusmanager.setisfocusscope.aspx

+0

,我到底会做什么? – uis 2011-06-14 16:12:34

+0

确定你使用SetIsFocusScope(TextBox1的,假的)焦点管理的财产,这将让出的文本框焦点范围,这意味着集中不会得出这样的控制,例如昏暗focuseScope2作为新的StackPanel() \t \t \t FocusManager.SetIsFocusScope(focuseScope2,假的) – Deepesh 2011-06-14 16:15:00

+0

这是System.Windows.Forms,我wpf – uis 2011-06-14 16:23:08