TextBox – TextChanged事件Windows C#
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了TextBox – TextChanged事件Windows C#,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1171字,纯文字阅读大概需要2分钟。
内容图文
![TextBox – TextChanged事件Windows C#](/upload/InfoBanner/zyjiaocheng/962/1c3be28dc7df4985b5c7f802817b1900.jpg)
我陷入困境,需要投入.这是描述 –
我在Windows窗体C#中有一个txtPenaltyDays
private void txtPenaltyDays_TextChanged(object sender, EventArgs e)
{
if(Convert.ToInt16(txtPenaltyDays.Text) > 5)
{
MessageBox.Show("The maximum amount in text box cant be more than 5");
txtPenaltyDays.Text = 0;// Re- triggers the TextChanged
}
}
但是我遇到了问题,因为这会引发2次.因为将文本值设置为0.
我的要求是它应该只触发一次并将值设置为0.
任何建议都深表感谢.
解决方法:
只需在发现无效值时禁用事件处理程序,通知用户然后重新启用事件处理程序
private void txtPenaltyDays_TextChanged(object sender, EventArgs e)
{
short num;
if(Int16.TryParse(txtPenaltyDays.Text, out num))
{
if(num > 5)
{
txtPenaltyDays.TextChanged -= txtPenaltyDays_TextChanged;
MessageBox.Show("The maximum amount in text box cant be more than 5");
txtPenaltyDays.Text = "0";//
txtPenaltyDays.TextChanged += txtPenaltyDays_TextChanged;
}
}
else
{
txtPenaltyDays.TextChanged -= txtPenaltyDays_TextChanged;
MessageBox.Show("Typed an invalid character- Only numbers allowed");
txtPenaltyDays.Text = "0";
txtPenaltyDays.TextChanged += txtPenaltyDays_TextChanged;
}
}
另请注意,我已删除Convert.ToInt16,因为如果您的用户键入字母而不是数字并使用Int16.TryParse,则会失败
内容总结
以上是互联网集市为您收集整理的TextBox – TextChanged事件Windows C#全部内容,希望文章能够帮你解决TextBox – TextChanged事件Windows C#所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。