我做了这个小嵌套for循环,它在C#中没有显示任何错误,
但是当我尝试运行我的小程序时,我的TextBox
中出现以下错误:
System.Windows.Forms.TextBox,Text:System.Windows.Forms.TextBox, 文字:Syst ......
这是我的代码:
int number = textBox.Text..ToString();
for (int row = 0; row < number; row++)
{
for (int x = number - row; x > 0; x--)
{
textBox2.Text = textBox2.Text + "X";
}
textBox2.Text = textBox2 + Environment.NewLine;
}
我的结果应该是这样的:
XXXX
XXX
XX
X
我无法弄清楚可能导致此错误的原因。
答案 0 :(得分:6)
您无法为数字指定字符串。你需要转换它:
// int number = textBox.Text..ToString();
int number;
if (!int.TryParse(textBox.Text, out number)
{
// Handle improper input...
}
// Use number now
此外,当您添加换行符时,您需要实际附加到Text
属性,而不是TextBox本身:
textBox2.Text = textBox2.Text + Environment.NewLine;
答案 1 :(得分:5)
而不是
textBox2.Text = textBox2 +
使用
textBox2.Text = textBox2.Text +
在最后一行。
就是这样; - )
答案 2 :(得分:3)
textBox2.Text = textBox2 + Environment.NewLine;
应该是
textBox2.Text = textBox2.Text + Environment.NewLine;
System.Windows.Forms.TextBox
只是班级名称
答案 3 :(得分:3)
你在倒数第二行错过.Text
。它应该是:
textBox2.Text = textBox2.Text + Environment.NewLine;
^^^^^
或只是:
textBox2.Text += Environment.NewLine;
答案 4 :(得分:2)
您无法将string
分配给int
,您正在做的是:
int number = textBox.Text..ToString();
更好的选择是使用int.TryParse(textBox.Text, out number)
和强>
更改
textBox2.Text = textBox2 + Environment.NewLine;
到
textBox2.Text = textBox2.text + Environment.NewLine;
修改强>
即使您将2个点更改为1,也会导致int number = textBox.Text.ToString();
出错 - 您无法将string
分配给int
答案 5 :(得分:2)
int number = textBox.Text..ToString();
假设这是一个错字?无论哪种方式,首先检查值是否为数字。
if (int.TryParse(textBox.Text, out number))
{
//run your loop here
}
此外,
textBox2.Text = textBox2 + Environment.NewLine;
应该是:
textBox2.Text = textBox2.Text + Environment.NewLine;
答案 6 :(得分:1)
这里有两个点。
textBox.Text..ToString();
这应该抛出编译错误。而且你不能将它分配给整数类型的变量。
textBox2.Text = textBox2 + Environment.NewLine;
你必须在这里调用文本框的方法,大概是textBox2.Text
。
答案 7 :(得分:1)
这可能会激发您以不同的方式思考这个问题:
// I created a simple textbox class so I could do this in a console app
var textBox = new TextBox();
var textBox2 = new TextBox();
textBox.Text = "4";
var number = Convert.ToInt32(textBox.Text);
var descendingXStrings = Enumerable.Range(1, number)
.Select(n => new string('X', n))
.Reverse();
textBox2.Text = string.Join(Environment.NewLine, descendingXStrings);
Console.WriteLine(textBox2.Text);
CW,因为这不直接回答问题。
答案 8 :(得分:0)
试试这个
int number = int.Parse(textBox1.Text);
for (int row = 0; row < number; row++)
{
for (int x = number - row; x > 0; x--)
{
textBox2.Text = textBox2.Text + "X";
}
textBox2.Text = textBox2.Text + Environment.NewLine;
}