本文介绍了SL4文本框上的IsTabStop=False的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在一个文本框上将IsTabStop设置为False,我知道这会使该控件无法接收焦点,但根据Silverlight Forums,它应该仍然能够接收鼠标事件。我连接了MouseLeftButtonUp事件,并在我的tbxTotal_MouseLeftButtonUp方法中设置了一个断点,并且在调试期间它从不被击中。SL论坛上的帖子现在已经很老了,所以可能是在某个更新中被更改了。我想要一个文本框,不能用Tab键切换到,但仍然可以编辑。真的这么难吗?
推荐答案
我没有意识到这一点,但似乎是这样的,另外,我似乎无法让MouseLeftButtonUp点火。不过,MouseLeftButtonDown确实会触发,您可以使用它来执行此攻击。
<TextBox IsTabStop="False" MouseLeftButtonDown="TextBox_MouseLeftButtonDown" />
然后在代码中,您可以像这样处理事件。
private void TextBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var textBox = ((TextBox) sender);
textBox.IsTabStop = true;
textBox.Focus();
textBox.IsTabStop = false;
}
可能值得将其包装在CustomControl中
public class FocusableTextBox : TextBox
{
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (!IsTabStop)
{
IsTabStop = true;
Focus();
IsTabStop = false;
}
base.OnMouseLeftButtonDown(e);
}
}
这篇关于SL4文本框上的IsTabStop=False的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!