1个回答
展开全部
用Form1的KeyPress(没有用KeyDown)实现,代码如下:
在窗体上布置一个label和一个textBox
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 允许窗体截获键盘按键
this.KeyPreview = true;
// KeyPress事件处理
this.KeyPress += Form1_KeyPress;
// 窗口改变大小时,将textBox1显示在窗体区域之外
this.Resize += Form1_Resize;
textBox1.Left = this.ClientSize.Width + 20;
textBox1.Focus():
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
char c = e.KeyChar;
// 如果是字母或数字,显示在lable1上
if (Char.IsLetterOrDigit(c))
{
label1.Text += c;
}
else if (Char.IsControl(c)) //如果是控制字符
{
if (c == '\b') //按BackSpace键,删除label1中最左边的字符
{
string text = label1.Text;
if (text.Length > 0)
{
text = text.Remove(text.Length - 1, 1);
label1.Text = text;
}
}
}
}
private void Form1_Resize(object sender, EventArgs e)
{
// 窗口改变大小时,将textBox1显示在窗体区域之外
textBox1.Left = this.ClientSize.Width + 20;
textBox1.Focus();
}
}
}
代码只演示了BackSpace,输入控制字符的逻辑可以进一步完善。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询