我有一个程序使用KeyPress
事件将新字符添加到新Label
,有点像控制台应用程序。
我需要在我的程序中添加Input
方法,所以当我按Enter而不是执行函数时,它会返回一个字符串。我试过让KeyPress
事件返回一个字符串,但由于显而易见的原因它不起作用,我该如何使它工作?
注意:我的意思是“返回一个字符串”;
如果我要求Console
等待输入,我仍然会使用KeyPress
事件,但它会返回用户的字符串/输入。
我希望你理解我已编写的代码,注意它扩展到其他
我的KeyPress事件处理程序:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\b') // Backspace
{
if (ll.Text != "_" && ActualText != "") // Are there any characters to remove?
{
ActualText = ll.Text.Substring(0, ActualText.Length - 1);
ll.Text = ActualText + "_";
}
}
else
if (e.KeyChar == (char)13)
{
if (!inputmode)
{
foreach (KeyValuePair<string, Action> cm in Base.Command())
{
if (ActualText == cm.Key)
{
print(ActualText);
cm.Value();
}
}
}
else
{
inputmode = false;
lastInput = ActualText;
print("Input >> "+lastInput);
}
ActualText = "";
ll.Text = ActualText + "_";
}
else
if (!Char.IsControl(e.KeyChar)) // Ignore control chars such as Enter.
{
ActualText = ActualText + e.KeyChar.ToString();
ll.Text = ActualText + "_";
}
}
答案 0 :(得分:2)
你的问题有点不清楚,但是如果我把它弄好了,那么解决方案是返回一个字符串,你显然不能在KeyPress
事件中,提出你自己的事件,就像这样
public delegate void EnterPressedHndlr(string myString);
public partial class Form1 : Form
{
public event EnterPressedHndlr EnterPressed;
void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
//your calculation
if (EnterPressed != null)
{
EnterPressed("your data");
}
}
}