不知道为什么控件combobox获得焦点后,IsFocused始终为false即使是利用Focus()获得焦点后IsFocused的值都是falsetextbox控件正常没问题的
求解!!!!

解决方案 »

  1.   

    http://social.msdn.microsoft.com/Forums/zh-CN/wpfzhchs/thread/8fa71b13-8b89-413c-a398-871af943868e/你判断isfoucused的时候估计方式有问题,或者判断时候让其失去focus了。你试一下这个: 一个窗体 一个combox 一个button
    然后        private void button1_MouseEnter(object sender, EventArgs e)
            {
                comboBox1.Focus();
                bool bl= comboBox1.Focused;
            }鼠标进入button,跟下断点没问题,结果也没问题。
      

  2.   

    不行啊,我不是说了focus()后IsIsFocused的值都是false吗??我是这样的private void Window_KeyDown(object sender, KeyEventArgs e)
            {
              if(e.Key == Key.Enter)
              {
                 this.line.Focus();  //line是combobox的name
                 if (this.line.IsFocused)
                 {MessageBox.Show("123");}
               }
            }就这样按回车后都不会弹出messagebox的,还有,我的只有IsFocused,没有Focused的!!求解!!!!
      

  3.   

    还有我在window_load事件上放上this.line.Focus(); 程序启动后光标是的确在combobox上的我在window_load事件上放上
    this.line.Focus(); 
    if (this.line.IsFocused)
      {MessageBox.Show("123");}
    程序启动后光标在combox上,但还是没有弹出messagebox的
      

  4.   


    sorry 刚才说错了。 你应该看看我给你贴得那个网址的 
    你需要在load之后设置combox.focuse();给你贴个代码吧。    public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
                this.Loaded += delegate
                {
                    this.comboxLine.Focus();
                };
            }        private void Grid_Loaded(object sender, RoutedEventArgs e)
            {        }        private void comboxLine_MouseEnter(object sender, MouseEventArgs e)
            {
                if (this.comboxLine.IsFocused)
                {
                    MessageBox.Show("123456");
                }
            }
        }
      

  5.   


    你可以看清我写的代码吗??你在机上运行了是可以的??我的和你的就是一样的,我也用了你的方法,也是不行的,还有同样的代码在textbox上是有效果的。还有光标的确是在combobox上的,但就是不知道为什么IsFocused一直都是false。
      

  6.   

    1.我运行你的没问题,运行我自己的也没问题。
    2.建议你重新建个wpf测试下。然后找找原因。
      

  7.   

    构造函数中设置 loaded之后获取焦点 
    这个必须有
            public Window1()
            {
                InitializeComponent();
                this.Loaded += delegate
                {
                    this.comboxLine.Focus();
                };
            }
      

  8.   

    跟断点 看一下 什么时候可以触发Grid_KeyDown,LOAD。如果不在构造函数中设置,第一次点击不会触发,原因我不懂,你再查查吧。
      

  9.   


    现在发现一定要在public Window1(){}上执行combobox.Focus()后,combobox.IsFocused的值才会是true,其他方法执行都没效果的,手动点击焦点移到combobox上也不行。奇怪的是其他控件例如textbox没这个问题,
    我现在是希望我在combobx按回车时,触发读取数据库信息的方法,现在根本执行不了。
    请问大家有其他方法吗???
      

  10.   

    没人知道怎么弄吗???combobox的isfocused值要怎样弄才能正常???现在光标移动到它那里,isfocused值怎么都是false的,只有在程序初始化时调用focus()后它才会是true,其他情况都不是的。