我正在编写一个.NET 4.5 C#/ WPF应用程序,我必须专门检测ComboBox
是否处于编辑模式。换句话说,我只需知道鼠标光标是否处于活动状态并在ComboBox
的可编辑部分闪烁,ComboBox
已准备好输入用户在键盘上输入的内容。
我尝试过“TextBoxBase.GotFocus
”,“TextBoxBase.GotKeyboardFocus
”等等。
即使用户只是点击了ComboBox
,这些事件也会触发,这没有任何意义(即使我甚至没有碰过键盘,为什么“GotKeyboardFocus
”事件也会触发?)。
无论如何,我怎样才能检测到鼠标光标处于活动状态并在ComboBox
的可编辑部分闪烁,ComboBox
是否已准备好输入用户在键盘上的输入?< / p>
答案 0 :(得分:0)
得到了......
void cmbMyComboBox_Loaded(object sender, RoutedEventArgs e)
{
var obj = (ComboBox)sender;
if (obj != null)
{
var t = (TextBox)obj.Template.FindName("PART_EditableTextBox", obj);
if (t != null)
{
t.MaxLength = 16;
t.GotFocus += (s, a) => { MyFunction(); } };
t.LostFocus += (s, a) => { MyOtherFunction(); } };
}
}
}