c# - 为什么在将项目添加到组合框时,值是相同的而不是通过循环增加?

标签 c# winforms

ComboboxItem boxitem = new ComboboxItem();

        public Form1()
        {
            InitializeComponent();

            for (int i = 0; i < 100; i++)
            {

                boxitem.Text = i.ToString();
                comboBox1.Items.Add(boxitem);
            }
        }

和 ComboboxItem 类:

public class ComboboxItem
        {
            public string Text { get; set; }
            public object Value { get; set; }

            public override string ToString()
            {
                return Text;
            }
        }

但由于某种原因,comboBox1 中的所有项目都是 99 共有 100 件元素,全部相同 99 相反 1 2 3 4 5 6 7 .... 99

最佳答案

在这里,您一遍又一遍地设置同一个 ComboBox 项目的文本,并将其添加到您的列表中:

for (int i = 0; i < 100; 
{
    boxitem.Text = i.ToString();
    comboBox1.Items.Add(boxitem);
}

相反,在循环内创建一个新的 ComboBox 并将其添加到列表中。只需移动

ComboboxItem boxitem = new ComboboxItem();

在你的 for 循环中,你很好。

关于c# - 为什么在将项目添加到组合框时,值是相同的而不是通过循环增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57202198/

相关文章:

c# - 在C#中创建不同的画笔图案

c# - 尝试在 RichTextBox 中调整图像大小时光标闪烁

c# - 汇总单个变量的各种数值效应的结果

c# - 使用数据绑定(bind)访问 DataTemplate 中的 WPF 组件

c# - 是什么导致 SignInManager.SendTwoFactorCodeAsync 返回 false?

c# - Environment.Exit() 导致我的应用程序在使用 Process.Start 后崩溃

c# - 在表单外显示列表框(winforms)

c# - 无法从 'method group' 转换为 'IEnumerator'

c# - ASP.MVC 参数未传递给 http post 的 Action 方法

c# - winform 上的透明背景?