该控制不仅能防止用户手输,而且不允许通过Ctrl + V粘贴信息,也无法通过鼠标右键粘贴数据
首先创建一个类型是DateTime的公共变量,这个变量用来计算每次按键的时间间隔
private DateTime _dt = DateTime.Now;
1、禁止手动输入、禁止通过Ctrl + V粘贴内容.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((Control.ModifierKeys & Keys.Control) == Keys.Control && e.KeyChar == 22)//判断Ctrl+V键
{
Clipboard.Clear();
this.textBox1.Text = "";
return;
}
DateTime tempDt = DateTime.Now; //保存按键按下时刻的时间点
TimeSpan ts = tempDt.Subtract(_dt); //获取时间间隔
if (ts.Milliseconds > 50) //判断时间间隔,如果时间间隔大于50毫秒,则将TextBox清空
{
//可以在此处实现除管理员外,普通用户禁止手输的功能
this.textBox1.Text = "";
}
_dt = tempDt;
}
2、禁止鼠标右键粘贴内容
private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right) {
Clipboard.Clear();
}
}