使用文本框中的值更改矩形的高度
本文关键字:高度 文本 | 更新日期: 2023-09-27 18:33:34
我对 C# 很陌生,当我按下按钮时,我正在尝试将矩形的高度更改为文本框中的数字值。
所以当我硬编码它时,我得到
private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
rct2010.Height = 150;
}
这是没有Texbox并且工作正常。我以为如果我使用文本框,我必须这样做:
private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
rct2010.Height = txt2010.Text;
}
但这行不通。有人可以帮助我吗?
高度是一个整数,但文本是一个字符串。 如果字符串无法解析为整数,这是不安全的,但它适用于您的简单示例。
private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
rct2010.Height = int.Parse(txt2010.Text);
}
为了真正安全起见,您可以使用TryParse。
private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
int height;
if(int.TryParse(txt2010.Text,out height))
{
rct2010.Height = height;
}
else
{
rct2010.Height = 150;
}
}
将其转换为整数
private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
rct2010.Height = int.Parse(txt2010.Text);
}
或者你可以更进一步
private void btnGrafiek_Click(object sender, RoutedEventArgs e)
{
int i = 0;
if(int.TryParse(txt2010.Text, out i)
rct2010.Height = i;
else
MessageBox.Show("That's not a number");
}
大概Height
的类型是int
,因此分配类型string
的值将不起作用,并且您会收到一个编译时错误,说明如此(请随时澄清); 您需要转换类型,例如:
int height = 0;
if (int.Parse(txt2010.Text, out height)) {
rct2010.Height = height;
}
TryParse
(与其他建议的Parse
相反)将确保您的应用程序在无法解析值时不会遇到异常(即它是错误的、意外的输入)。但是,另一方面,这意味着您的应用程序显然不会对输入执行任何操作(因为它没有),因此您可能希望使用else
案例来通知用户。