如何确保当您点击标签时,应用程序希望按任意键,当用户按下键时,标签文本会更改为此密钥字符?
好的,现在我有:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool isLabelClicked = false;
private void label1_Click(object sender, EventArgs e)
{
isLabelClicked = true;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (isLabelClicked)
{
label1.Text = ((char)e.KeyValue).ToString();
isLabelClicked = false;
}
}
}
如果我按Up,Down,Left,Right,Tab或Enter,应用程序没有响应,仍然需要按键。只有当我按任何其他键时,应用程序才能正常运行。
如果我创建新项目并粘贴相同的代码,一切正常,对于Up,Down,Left和Right,但我需要这个键用于我的应用程序。
答案 0 :(得分:1)
这个例子是一个textBox类:按任意键时显示它
using System;
using System.Windows.Forms;
using System.Drawing;
namespace KeyPressDisplayTextBox {
public partial class Form1 : Form {
private TextBox textBox1;
private Label label1;
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
textBox1 = new TextBox();
textBox1.Location = new Point(10,10);
textBox1.KeyPress += textBox1_KeyPress;
Controls.Add(textBox1);
label1 = new Label();
label1.Location = new Point(10, 40);
label1.BorderStyle = BorderStyle.FixedSingle;
label1.Font = new Font("Arial", 14);
Controls.Add(label1);
}
void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
label1.Text = e.KeyChar.ToString();
}
}
}
祝你好运
答案 1 :(得分:0)
您可以在表单上处理KeyDown
事件并获取KeyValue
,如下所示
试试这个:
您需要将表单KeyPreview
属性设置为True
,以便从Form
bool isLabelClicked = false;
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (isLabelClicked)
{
label1.Text = ((char)e.KeyValue).ToString();
isLabelClicked = false;
}
}
private void label1_Click(object sender, EventArgs e)
{
isLabelClicked = true;
}