我的 C# WPF 项目中有一个文本框,我希望它在按下回车后将输入到文本框中的值发送到以下函数中的变量。
我的文本框中的用户输入是否必须在一个单独的函数中,或者我可以将它放在我想要将值发送到的同一个函数中?
private void UserInput(object sender, KeyEventArgs e)
{
Point p1 = new Point();
TextBox textBoxX = new TextBox();
if (e.Key == Key.Enter)
{
double inputAsNumberX = 0.0000;
if (double.TryParse(textBoxX.Text, out inputAsNumberX))
{
p1.X = inputAsNumberX;
}
else
{
MessageBox.Show("This is not a number.");
}
}
else
{
}
double inputAsNumberY = 0;
TextBox textBoxY = sender as TextBox;
while (textBoxY.Text == null)
{
//textBoxY = sender as TextBox;
}
if (double.TryParse(textBoxY.Text, out inputAsNumberY) == true)
{
p1.X = inputAsNumberY;
}
else
{
MessageBox.Show("This is not a number.");
}
}
xml代码
<TextBox Name="TextBoxX" TextWrapping="Wrap" MaxLength="32" KeyDown="UserInput" />
更新:我有一个奇怪的问题是,当我尝试输入任何内容(调试时)时,它会阻止我输入任何内容。运行完代码并尝试再次输入后,它允许我输入一个字符(如数字),然后阻止我输入更多。
它似乎也只显示代码运行后在文本框中键入的新字符。
我怎样才能修复我的代码以我想要的方式运行,即输入一个值,按回车键,值被发送到函数,它将它设置为双变量:inputAsNumberX???
更新 2:我已经更新了我正在使用的代码。我试图获得两个输入,所以我设置了两个文本框。两者都应该按照我上面的要求做同样的事情。