我窗体上有个文本框控件,工具栏上也有一个。窗体上的Dock属性为Fill。
假如我现在焦点是在工具栏上的文本框,可是一改变窗体大小或者点击工具栏其他空白处,焦点都会自动转到窗体上的文本框。我试过,如果Dock属性为None则不会出现这个问题。可是我又需要Fill这个功能,还有没有什么可行的办法?

解决方案 »

  1.   

            private void Form1_SizeChanged(object sender, EventArgs e)
            {
                this.toolStripTextBox1.Focus();
            }
      

  2.   

    增加个变量 isToolTextFocused 当工具栏上的文本框得到焦点时设置为 true 失去时设置为 false
    然后在窗体 SizeChanged 事件里判断这个变量
      

  3.   

            private void toolStrip1_MouseDown(object sender, MouseEventArgs e)
            {
                this.toolStripTextBox1.Focus();
            }
      

  4.   

    回1楼:你这样写又太绝对了,如果要加一个判断:当焦点在toolStripTextBox时才执行怎么写啊?
      

  5.   

    回2楼:
    你说 然后在窗体 SizeChanged 事件里判断这个变量
    窗体发送SizeChanged这个事件时,焦点已经自动转换为了窗体上的文本框
    所以 isToolTextFocused 永远为false
      

  6.   

    你想让哪个文本框获得焦点就用哪个文本框调用Focus();
      

  7.   

    我想让有焦点的文本框在窗体大小改变后焦点还是在改文本框。
    我知道可以用Focus
    可问题是我怎么判断原来焦点在哪个文本框代码没地方写,比如写在SizeChanged判断,判断时焦点已经切换到了窗体上的文本框了