winform窗体,几个textbox加一个button控件
要求button点击下弹出一个确认窗体,当确认窗体点了no的时候,光标停回原先所在的那个textbox控件我想问问有什么简单一点的好方法吗?我自己用一个变量记住光标每次移动所在的控件的前一个控件,相当麻烦。

解决方案 »

  1.   

    这个和tab顺序有什么关系?
    无论光标当前在什么textbox,都能直接点击button的。。
    要回到点击button前的控件,而不是button的tab顺的上一个控件
      

  2.   

    你可以在TextBox的Validating 事件来处理离开焦点的事件,比如:TextBox tb;
    tb.Validating += new CancelEventHandler(tb_Validating);void tb_Validating(object sender, CancelEventArgs e)
    {
    if (MessageBox.Show("aa", "bb", MessageBoxButtons.YesNo) == DialogResult.No)
    {
    e.Cancel = true;
    }
    }
      

  3.   

    看一下Programming Windows第7章 Hit-Testing in Your Programs
      

  4.   

    在textbox里面showdilag()后面加上this.textbox.fous();
      

  5.   

    to:hbxtlhx(平民百姓-自已动手,丰衣足食) 
    MessageBox是要写在button的点击事件里面的。不应该写在textbox的validating里面吧?to:`Macosx(不要呢称) 这本书手头没有
      

  6.   

    控件的焦点离开是Leave事件private Control focusControl = null;
    private void Control_Leave(object sender, EventArgs e)
    {
        focusControl = (Control)sender;
    }private void button1_Click(object sender, EventArgs e)
    {
        if (MessageBox.Show("路过?", "问", MessageBoxButtons.OKCancel) != DialogResult.OK)
        {
            ActiveControl = focusControl;
        }
        else focusControl = (Control)sender;
    }
      

  7.   

    private void button1_Click(object sender, EventArgs e)
    {
        if (MessageBox.Show("路过?", "问", MessageBoxButtons.OKCancel) != DialogResult.OK)
        {
            ActiveControl = focusControl;
        }
        else focusControl = (Control)sender;
    }