我正在尝试将数组Scores声明为文本框数组。它没有大小。我还需要将它声明为实例变量,并在方法CreateTextBoxes中实例化它。我一直收到一个错误,“分数是一个字段但是像一个类型一样使用。”
namespace AverageCalculator
{
public partial class AverageCalculator : Form
{
private TextBox[] Scores;
public AverageCalculator()
{
InitializeComponent();
}
private void AverageCalculator_Load(object sender, EventArgs e)
{
btnCalculate.Visible = false;
}
private void btnOK_Click(object sender, EventArgs e)
{
int intNumTextBoxes;
intNumTextBoxes = Convert.ToInt32(txtNumScores.Text);
this.Height = 500;
btnCalculate.Visible = true;
btnOK.Enabled = false;
}
private void CreateTextBoxes(int number)
{
Scores[number] = new Scores[number];
int intTop = 150;
for (int i = 0; i < 150; i++)
{
}
}
}
}
答案 0 :(得分:2)
您需要实例化TextBox,但数字应该是常量您可以阅读有关数组创建表达式 here 的更多信息。如果你想要可变大小,最好使用List而不是数组。
Scores = new TextBox[number];
使用列表
List<TextBox> Scores= new List<TextBox>();
答案 1 :(得分:2)
你的CreateTextBoxes
应该是这样的:
private void CreateTextBoxes(int number)
{
Scores = new TextBox[number];
for (int i = 0; i < number; i++)
{
Scores[i] = new TextBox();
}
}
正如阿迪尔所说,List<TextBox>
在这种情况下可能更好。
答案 2 :(得分:1)
您的代码应为:
Scores = new TextBox[number];
// do things with this array
答案 3 :(得分:1)
问题在于
private void CreateTextBoxes(int number)
{
Scores[number] = new Scores[number];
int intTop = 150;
for (int i = 0; i < 150; i++)
{
}
}
当您尝试初始化数组时,您在键入时使用字段的名称,并包含字段名称的索引。只需将新类型更改为TextBox并删除索引访问器,如下所示:
private void CreateTextBoxes(int number)
{
Scores = new TextBox[number];
int intTop = 150;
for (int i = 0; i < 150; i++)
{
}
}
答案 4 :(得分:0)
用第2行替换第1行
Scores[number] = new Scores[number];
Scores[number] = new TextBox();
答案 5 :(得分:0)
你不能这样做。
Scores[number] = new Scores[number];
使用TextBox
列表。