c# - 将通用列表项添加到 Winforms 的列表框 c#

标签 c# winforms generics listbox

您好,我正在尝试将项目添加到通用列表中。然后单击按钮,通用列表项应转移到我的 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;      
}

最佳答案

如果您不使用 IList<string> list,这只是@Kami 答案的替代方案。任何其他地方,然后只需将项目直接添加到列表框:

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;
}

关于c# - 将通用列表项添加到 Winforms 的列表框 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798979/

相关文章:

c# - 使用 Entity Framework 选择一个范围

c# - 以编程方式隐藏重复表

c# - Windows Mobile 在应用程序关闭时释放资源(.net 3.5 cf)

java - 泛型 - 如何传递对象数组

c# - 在没有泛型类约束的情况下,将泛型类型与其默认值进行比较会产生编译时错误

c# - 如何使用 LINQ 对通用列表中的值求和?

c# - 使用 C#,LINQ 如何一次又一次地在标记之间选择项目?

c# - Devexpress GridView 条件单元格格式

winforms - 如何在 Windows 窗体中使用 DbContext 实现 DI

c# - 如何在exe文件上设置发布者