C# 在失去焦点时防止文本框离开事件

C# 在失去焦点时防止文本框离开事件,c#,winforms,events,textbox,C#,Winforms,Events,Textbox,如何在文本框处于焦点时单击linklable/按钮停止文本框离开事件? 我有一个文本框TextBox1。在休假事件中,我必须验证它的文本。根据它的文本,我必须填充下一个文本框的建议TextBox2 所以在这个过程中,当我点击链接标签[出于不同的原因]而TextBox1处于焦点时,它会触发休假事件[这很明显]并调用验证功能[这不应该被调用-因为用户在完成输入后没有离开textbox-它是由可链接的点击触发的]. 我试图取消订阅链接标签的点击事件中的请假事件,但这并没有帮助,因为请假事件首先被触发

如何在文本框处于焦点时单击linklable/按钮停止文本框离开事件?

我有一个文本框
TextBox1
。在休假事件中,我必须验证它的文本。根据它的文本,我必须填充下一个文本框的建议
TextBox2

所以在这个过程中,当我点击链接标签[出于不同的原因]而
TextBox1
处于焦点时,它会触发休假事件[这很明显]并调用验证功能[这不应该被调用-因为用户在完成输入后没有离开textbox-它是由可链接的点击触发的].

我试图取消订阅链接标签的点击事件中的请假事件,但这并没有帮助,因为请假事件首先被触发

在这种情况下应该怎么做

编辑: 发布相关代码

两个文本框都有相同的事件处理程序

    private void txtBox_Leave(object sender, EventArgs e)
    {
        TextBox textBox = sender as TextBox;
        textBox.Visible = false;

            #region TextBox 1
            if (textBox.Equals(txtBox1))
            {
                //Text Box 1 validation
                //Populating Suggestions for TextBox2
                //Passing focus on Textbox 2
            }
            #endregion
            #region TextBox 2
            else if (textBox.Equals(txtBox2))
            {
                //Text Box 2 validation
            } 
            #endregion
     }
正如我前面提到的,链接标签是为不同的目的而存在的,在对文本框进行操作期间,我无法禁用或隐藏它

一个观察是,
当我点击链接标签时,文本框的离开事件首先引发,然后点击链接标签的离开事件,因此我们无法执行任何逻辑(如取消订阅文本框的离开事件或其他)在链接标签的单击事件上-当验证过程完成时,我们不希望这样做。

当您单击链接标签时,它将成为焦点控制。您可以做的是-在
textbox1\u leave
事件处理程序中找到表单的焦点控件。如果不是
链接标签
,则只应执行
textbox2
的填充建议功能


此链接应有助于您了解表单的焦点控制-

您是否使用WinForms、WPF等。。。?(您应该将此添加到标记列表中)。@SamusArin我正在使用winForms。您可以发布相关代码,特别是TextBox leave事件处理程序和验证例程吗?是的,我也在按照这些思路进行计算,听起来好像验证是从leave事件无条件触发的,但仍然希望看到代码,以确保没有其他事情发生。@SamusArin,是的。正在无条件激发验证。不管它暗示了什么,它都在帮助我摆脱这种局面。