【问题标题】:C# Adding objects to listBox and then changing their parametersC#将对象添加到listBox,然后更改它们的参数
【发布时间】:2014-02-23 19:44:39
【问题描述】:

如何向 listBox 添加新对象,然后更改其参数?

我有一堂课:

public class Triangle
{
    public Triangle(double a, double b, double c): base(a, b, c)
    { }
}

private void button1_Click_1(object sender, EventArgs e)
{
    double a = 3;
    double b = 4;
    double c = 5;

    Triangle t = new Triangle(a, b, c);
    listBox1.Items.Add("Triangle");
}

如何更改此 Triangle 的边长(新值将来自 Textbox)并更新此类对象?

【问题讨论】:

    标签: c# listbox add


    【解决方案1】:

    首先,您需要公开 Triangle 类的属性:

    public class Triangle
    {
    
        public double SideA { get; set; }
        public double SideB { get; set; }
        public double SideC { get; set; }
        public string Name { get; set; }
    
        public Triangle(double a, double b, double c, string n)
        {
            SideA = a;
            SideB = b;
            SideC = c;
            Name = n;
        }
    
        public override string ToString()
        {
            return Name;
        }
    }
    

    请注意,我添加了一个 Name 属性,该属性将默认显示在您的 ListBox 中(因为 ToString() 覆盖)。

    然后,将您的三角形添加到 ListBox:

    listBox1.Items.Add(new Triangle(1, 2, 3, "One"));
    listBox1.Items.Add(new Triangle(1, 2, 3, "Two"));
    listBox1.Items.Add(new Triangle(1, 2, 3, "Three"));
    

    最后,您的代码的其他部分是否必须首先从 ListBox 中获取对 Triangle 对象的引用:

    Triangle t = listBox1.SelectedItem as Triangle;
    if (t != null)
        t.SideA = 10;
    

    请注意,我假设您要编辑当前选定的三角形。

    干杯

    【讨论】:

      【解决方案2】:

      感谢您的回答,但问题是 listBox 中的元素(三角形)的数量是无限的,所以我不能使用名称字符串。单击按钮后应该是动态添加,但是在列表框中的选择元素之后,您可以更改例如边的长度

      【讨论】:

        猜你喜欢
        • 2014-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-07
        • 2011-09-12
        相关资源
        最近更新 更多