我正在尝试将列表框中的项目复制到数组中。 但我在这里遗漏了一些东西我得到错误方法名称预期。
我有三个错误:
错误CS1955非可调用成员' ListBox.Items'不能像方法一样使用。
错误CS0201只能将赋值,调用,递增,递减和新对象表达式用作语句
错误CS0149方法名称预期为WindowsFormsApp6
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i;
private void Form1_Load(object sender, EventArgs e)
{
Random rand = new Random();
for (i = 0; i <= 10; i++)
{
listBox1.Items.Add(rand.Next(0, 10));
}
}
private void button1_Click(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
for (i = 0; i <= listBox1.Items.Count - 1; i++)
{
string[] strArray = new string[11];
strArray(i) == listBox1.Items(i);
label1.Text = "Coppied items";
}
}
}
答案 0 :(得分:0)
在这一行:
strArray(i) == listBox1.Items(i);
有两个问题。
结果:
strArray[i] = listBox1.Items[i];
答案 1 :(得分:0)
代码存在许多问题。您的问题的主要答案是您使用方括号而不是括号来引用数组项。
但您也不需要在班级声明您的i
变量。它应该在for
循环中所需的最低范围内声明。
您还应该在循环外声明strArray
,否则每次都会重新创建。我不清楚你是否应该在方法或类级别声明它,因为你没有显示任何实际使用它的代码。
此外,在向数组添加项目时,您正在使用比较运算符(==
)而不是赋值运算符(=
)。
以下是解决这些问题的方法:
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Random rand = new Random();
for (int i = 0; i <= 10; i++)
{
listBox1.Items.Add(rand.Next(0, 10));
}
}
private void label1_Click(object sender, EventArgs e)
{
string[] strArray = new string[listBox1.Items.Count];
for (int i = 0; i < listBox1.Items.Count; i++)
{
strArray[i] = listBox1.Items[i];
}
label1.Text = "Coppied items";
}
答案 2 :(得分:0)
这就是我现在所拥有的。代码编译但消息未显示在标签上。
private void button1_Click(object sender, EventArgs e)
{
string[] strArray = new string[listBox1.Items.Count];
for (int i = 0; i < listBox1.Items.Count; i++)
{
strArray[i] = listBox1.Items[i].ToString();
}
label1.Text = "Coppied items";
}
答案 3 :(得分:0)
您可以使用ListItemCollection.CopyTo方法在没有循环的情况下执行此操作。
private void label1_Click(object sender, EventArgs e)
{
string[] strArray = new string[listBox1.Items.Count];
listBox1.Items.CopyTo(strArray, strArray.GetLowerBound(0));
label1.Text = "Copied items";
}