显示从文本框到列表框的输出,C#
本文关键字:输出 文本 显示 列表 | 更新日期: 2023-09-27 18:31:33
所以我在C# winforms中创建了一个LinkedList,现在我想在添加,删除和搜索节点值时直观地显示列表。我使用 3 个按钮控件,一个用于添加节点、删除节点,最后一个用于搜索节点值。然后,我有一个文本框,它应该从用户那里读取一个 int 值(例如 10),然后在列表框中将该值显示为链表。因此,Ive 创建了一个 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试图做的是编写一些代码,以便当我在文本框中输入整数时,它应该作为LinkedList出现在Listbox中(使用我的LinkedList类中的add方法)
我尝试在"添加"按钮的事件处理程序上执行此操作:
LinkedList l1 = new LinkedList();
l1.Add(textBox1);
但显然,这甚至不合逻辑。有人可以在这里指出我正确的方向吗?
如果你的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);
你可能想要
l1.Add(Int32.Parse(textBox1.Text))
textBox1
是一个表示文本框的对象,而不是存储在文本框中的值(即 Text
属性)。 TextBox
以字符串格式存储它们的值,因此使用 Int32.Parse()
(从字符串(或其他值)转换为 int。
应该注意的是,Int32.Parse
不是执行此操作的最安全方法,如果要验证该值是否确实是int
则应使用Int32.TryParse()