如何在c# WinForms中执行一个方法,如果文本框的值等于预先确定的长度
本文关键字:文本 如果 于预先 方法 WinForms 执行 一个 | 更新日期: 2023-09-27 17:53:14
我有一个用户输入4位pin码的表单。当输入pin号时,我想在按下pin号的最后一个数字时自动调用我的方法。我假设这需要在文本框上的keydown事件完成。
这是我到目前为止尝试的。
private void txtPinNumber_KeyDown(object sender, KeyEventArgs e)
{
if (txtPinNumber.Text.Trim().Length == 4)
{
SendKeys.Send("{ENTER}");
if (e.KeyCode == Keys.Enter)
Verify_Pin();
}
}
它似乎工作,但用户必须按一个附加键来执行该方法。我错过了什么?
没有理由按以编程方式输入然后检查它。只需调用另一个方法。
而且,KeyDown
事件在之前触发, Text
属性更改以反映最近键入的字符,因此您必须将该代码放在不同的事件中。
使用TextChanged
或KeyUp
private void txtPinNumber_TextChanged(object sender, KeyEventArgs e)
{
if (txtPinNumber.Text.Trim().Length == 4)
Verify_Pin();
}
你说
When the pin number is entered, I would like to call my method automatically once the last number of the pin number is pressed.
你可以在文本框
的KeyUp
事件中这样做private void txtPinNumber_KeyUp(object sender, KeyEventArgs e)
{
if (txtPinNumber.Text.Trim().Length == 4)
Verify_Pin();
}
顺便说一句,建议让用户按回车键,然后运行代码。因为它可能是用户不小心按错了最后一个数字。