在我的Windows窗体应用程序中,我希望实现这样一种功能:用户必须填写产品的序列号,当该序列号与数据库中的任何产品匹配时,该产品必须出现在网格中。我想使用textbox textChanged事件来实现。
我搞不清楚,在textbox值与数据库中的任何值匹配之前,我必须防止触发textChanged事件。有没有办法让textbox在运行剩余的代码在网格中显示产品之前,期望特定数量的文本或数字(我的序列号将是固定长度的-比如10001,10002,10003)?
发布于 2018-08-06 14:53:46
考虑一下MaskedTextBox的使用。除了定义输入文本的格式之外,MaskedTextBox
与标准TextBox
类似。这可以是任何东西,字母、数字、破折号等。
在您的情况下,您只接受五位数的输入。
使用windows窗体设计器添加MaskedTextBox,或自行添加:
this.maskedTextBox1 = new System.Windows.Forms.MaskedTextBox();
this.maskedTextBox1.Location = ...
this.maskedTextBox1.Size = ...
// etc. Advise: let forms designer do this
// accept only input of five digits:
this.Mask = "00000";
操作员看到所请求输入的长度的指示。操作员不可能键入非数字。事件,也可以在键入(TextChanged
)时执行此操作,因此如果需要,您可以实现自动完成。如果操作员按下一个无效的键,您甚至可以得到通知,因此您可以通知操作员该错误
https://stackoverflow.com/questions/51698100
复制相似问题