【发布时间】:2014-12-02 19:26:38
【问题描述】:
我在 Winform 文本框的 TextChanged 事件中有一段 c# 代码。几个被调用的空位都附有消息框,因此操作员知道它们是否有有效数据。不幸的是,这些调用被完全跳过。我用 show() 而不是 showdialog() 调用了有问题的表单,以消除模态表单。还是没有肥皂。该事件由条形码扫描仪触发。代码如下:
private void txtScanCode_TextChanged(object sender, EventArgs e)
{
string barCode;
barCode = txtScanCode.Text;
if (txtScanCode.Text.Length == 12)
{
MessageBox.Show(this, "Hey, look!", "A message box!",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
FindScanItem(barCode);
barCode = "";
txtScanCode.SelectionStart = 0;
txtScanCode.SelectionLength = txtScanCode.Text.Length;
}
}
我怀疑这是文本更改和按键的组合,但不确定应该如何正确触发它。
【问题讨论】:
-
我不是
TextChanged的粉丝,主要是因为它不可靠。你试过LostFocus什么的吗?所以一旦失去控制焦点,它就会触发事件。 -
TextChanged 事件是否被触发?你是否在其中设置了断点并验证了'if'语句中的条件为真?
-
@Rufus TextChanged 事件确实会触发。它甚至执行数据功能。它只是讨厌 MessageBox.Show()。
-
不,它没有。您的代码工作正常。它可能是多行的吗?另外:我们没有看到 Keypress 事件!向我们展示所有相关代码!
-
嗯,你的代码对我来说很好用。不确定您所说的“数据功能”是什么意思?