winform 文本框排开不能输入字符且复制的内容也不能是字符
时间: 2023-12-06 16:03:05 浏览: 134
.net(c#) winform文本框只能输入数字,不能其他非法字符.pdf
您可以使用以下代码将 Winform 文本框设置为只接受数字输入,并防止复制非数字内容:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 只接受数字键、回车键和退格键
if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Enter && e.KeyChar != (char)Keys.Back)
{
e.Handled = true;
}
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
// 防止复制非数字内容
if (e.Control && e.KeyCode == Keys.C)
{
if (!string.IsNullOrEmpty(textBox1.SelectedText))
{
int selectedNumber;
if (!int.TryParse(textBox1.SelectedText, out selectedNumber))
{
Clipboard.Clear();
}
}
}
}
```
在 `textBox1_KeyPress` 中,我们检查按键是否为数字键、回车键或退格键,如果不是则将 `e.Handled` 设为 `true`,防止输入非数字字符。
在 `textBox1_KeyDown` 中,我们检查是否按下了 Ctrl + C 复制快捷键,如果是,则检查选中的文本是否为数字,如果不是则清空剪贴板中的内容。
阅读全文