您好我正在尝试将项目添加到通用列表中。然后在按钮上单击通用列表项应该转移到我的listbox1。但是,每次单击按钮时都会添加它们。
我尝试使用if命令, 有时像这样
if (listBox1.Items.Count == 0)
{
// this contained everything I am now adding under initialize component)
}
但是这产生了错误。索引值不能为0。 所以从本质上讲,这是有效的。但我不希望每次点击都继续添加项目。
public Form1()
{
InitializeComponent();
list.Add("Januari");
list.Add("Februari");
list.Add("March");
list.Add("April");
list.Add("May");
list.Add("June");
list.Add("July");
list.Add("August");
list.Add("September");
list.Add("Oktober");
list.Add("November");
list.Add("December");
}
private IList<string> list = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
for (int index = 0; index < list.Count; index++)
{
listBox1.Items.Add(list[index]);
}
int mnr = Convert.ToInt32(textBox1.Text);
string mnm = Convert.ToString(listBox1.Items[mnr - 1]);
textBox2.Text = mnm;
}
答案 0 :(得分:1)
这只是@Kami答案的替代方案,如果你不在其他任何地方使用IList<string> list
,那么只需将这些项目直接添加到列表框中:
public Form1()
{
InitializeComponent();
// This is only called once.
InitializeListBox();
}
private void InitializeListBox()
{
listBox1.Items.Add("Januari");
listBox1.Items.Add("Februari");
listBox1.Items.Add("March");
listBox1.Items.Add("April");
listBox1.Items.Add("May");
listBox1.Items.Add("June");
listBox1.Items.Add("July");
listBox1.Items.Add("August");
listBox1.Items.Add("September");
listBox1.Items.Add("Oktober");
listBox1.Items.Add("November");
listBox1.Items.Add("December");
}
private void button1_Click(object sender, EventArgs e)
{
int mnr = Convert.ToInt32(textBox1.Text);
string mnm = Convert.ToString(listBox1.Items[mnr - 1]);
textBox2.Text = mnm;
}
答案 1 :(得分:0)
你可以在这做两件事。
首先,选项是在加载列表之前添加对clear()
的调用。这将删除现有项目并重新插入。
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
for (int index = 0; index < list.Count; index++)
{
listBox1.Items.Add(list[index]);
}
int mnr = Convert.ToInt32(textBox1.Text);
string mnm = Convert.ToString(listBox1.Items[mnr - 1]);
textBox2.Text = mnm;
}
或者,可能更好的解决方案是将加载移动到init函数中。由于每个表单只需要加载一次数据,因此这是更好的解决方案。
public Form1()
{
InitializeComponent();
Init();
}
private void Init()
{
list.Add("Januari");
list.Add("Februari");
list.Add("March");
list.Add("April");
list.Add("May");
list.Add("June");
list.Add("July");
list.Add("August");
list.Add("September");
list.Add("Oktober");
list.Add("November");
list.Add("December");
listBox1.Items.Clear();
for (int index = 0; index < list.Count; index++)
{
listBox1.Items.Add(list[index]);
}
}
private IList<string> list = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
int mnr = Convert.ToInt32(textBox1.Text);
string mnm = Convert.ToString(listBox1.Items[mnr - 1]);
textBox2.Text = mnm;
}