微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

防止将数字粘贴到.net窗体中的文本框中

我已经阻止使用按键事件键入文本框中的数字。 但是当使用Ctrl + V或通过鼠标粘贴内容时,数字将被input到文本框中。 如何防止这一点? 除了数字,我必须允许粘贴/键入所有文本。

在winXP https请求错误

.NET与Windows RT蓝牙LE API – 重新启动Windows后无法读取或写入设备

为什么我的C ++互操作在.Net 4.5上,而不是在4上

如何使用C#中的TaskScheduler设置“仅在login时运行”和“运行为”?

DataGridView CellFormatting事件不会触发

非常简单的方法是使用TextChanged事件来检查文本。 如果文本有效,则将其副本存储在字符串变量中。 如果无效,则显示一条消息,然后从变量中恢复文本:

string _latestValidText = string.Empty; private void TextBox_TextChanged(object sender,EventArgs e) { TextBox target = sender as TextBox; if (ContainsNumber(target.Text)) { // display alert and reset text MessageBox.Show("The text may not contain any numbers."); target.Text = _latestValidText; } else { _latestValidText = target.Text; } } private static bool ContainsNumber(string input) { return Regex.IsMatch(input,@"d+"); }

这将处理文本中出现的任何数字,无论它们可能出现在何处或多少次。

使用TextBox.TextChanged事件。 然后使用与KeyDown事件中相同的代码。 事实上,你不再需要keydown事件

您可以使用JavaScript更改事件(onchange)而不是keydown事件。 只有当用户离开文本框时才会检查。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐