将文本框的输出显示到列表框,C#

时间:2014-11-22 15:41:10

标签: c# forms listbox

所以我在C#winforms中创建了一个LinkedList,现在我想在添加,删除和搜索节点值时以可视方式显示列表。我使用3个按钮控件,一个用于添加节点,删除节点,最后一个用于搜索节点值。然后,我有一个文本框,应该从用户读取一个int值(例如10),然后在列表框中将该值显示为链接列表。所以,我创建了一个Node类和一个linkedlist类。 Node类包含一个值和对下一个节点的引用:

class Node
{
    public int value;
    public Node next;

    public int Value
    {
        get { return this.value; }
        set { this.value = value; } 
    }

    public Node Next
    {
        get;
        set;
    }

    public Node()
    {
        this.Next = null;
        this.value = 0;
    }
}

和一个带有我所有方法的LinkedList类(我只会编写我的add方法,所以代码不会太多)

public void Add(int val)
    {
       Node newNode = new Node();
       newNode.value = val;

       if (head == null)
           head = newNode;

       if (current.Next == null)
       {
           current.Next = newNode;
           current = newNode;
       }
       size++;
   }

所以,现在imm试图做的是写一些代码,这样当我在文本框中输入一个int数时,它应该作为LinkedList出现在Listbox中(用我的LinkedList类中的add方法)

我尝试在“添加”按钮的事件处理程序上执行此操作:

LinkedList l1 = new LinkedList();
l1.Add(textBox1);

但显然这甚至不符合逻辑。有人可以请我指出正确的方向吗?

2 个答案:

答案 0 :(得分:1)

你可能想要

l1.Add(Int32.Parse(textBox1.Text))

textBox1是表示文本框的对象,而不是存储在其中的值(即Text属性)。 TextBox以字符串格式存储它们的值,因此使用Int32.Parse()(从字符串(或其他值)转换为int。

应该注意Int32.Parse不是最安全的方式,如果你想验证该值是否真的是int,你应该使用Int32.TryParse()

答案 1 :(得分:1)

如果您ListBox被称为listBox1,则会添加如下:

listBox1.Items.Add(something);

您可以直接添加字符串,但您可能希望添加一个LinkedList个对象。您也可以像上面一样添加它。

listBox1.Items.Add(l1 );

..但在向ToString课程添加LinkedList方法之前,它不会显示任何有用的内容:

public override string ToString()
{
    return "value : " + this.value; // maybe you want to display more here?
}

由你来决定你想要展示什么;如果链接设置可能是指标..? 我还建议在LinkedList类中添加一个或多个构造函数,以便立即设置该值:

public Node(int value_)
{
    this.Next = null;
    this.value = value_;
}

然后您的上述代码可以转到:

LinkedList l1 = new LinkedList(textBox1.Text);
listView1.Items.Add(l1);