【发布时间】:2017-08-20 04:33:43
【问题描述】:
当文本框处于焦点时,如何在单击可链接/按钮时停止文本框离开事件?
我有一个文本框TextBox1。在它的休假事件中,我必须验证它的文本。根据它的文本,我必须填充下一个文本框 TextBox2 的建议。
所以在这个过程中,当我在TextBox1 处于焦点时单击链接标签[这是出于不同的原因],它正在触发 Leave 事件 [这很明显] 并调用验证功能 [哪个不应该被调用 - 因为用户在完成输入后没有离开文本框 - 它是由可链接点击触发的]。
我试图取消订阅链接标签的点击事件上的离开事件,但这无济于事,因为离开事件首先被触发。
这种情况应该怎么办?
编辑: 贴出相关代码,
两个文本框都有相同的事件处理程序
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
}
正如我之前提到的,链接标签是不同的,在文本框操作期间我无法禁用或隐藏它。
一个观察结果是, 当我点击链接标签时,文本框的离开事件首先引发,然后是链接标签的点击事件,因此我们无法在链接上执行任何逻辑(如取消订阅文本框的离开事件或其他)-标签的点击事件 - 到时候验证过程将完成,这是我们不想要的。
【问题讨论】:
-
您使用的是 WinForms、WPF 等吗? (您应该将此添加到标签列表中)。
-
@SamusArin 我正在使用 winForms。
-
能否请您发布相关代码,特别是 TextBox 离开事件处理程序和验证例程?
标签: c# winforms events textbox