如何将布尔和数字数据关联到列表框中的项c#
本文关键字:列表 关联 布尔 数据 数字 | 更新日期: 2023-09-27 17:51:05
我正在创建一个程序,要求listbox
中的每个项目都有自己的数据。
例如,一个条目可以选中checkbox
,将numericUpDown
设置为20,而另一个条目可以选中checkbox
,将数字设置为35。
到目前为止,我能够通过textbox
将项目输入listbox
。
如果有必要,我已经实现了下面的代码。
private void button_Insert_Click(object sender, EventArgs e)
{
listBox_Movielist.Items.Add(this.text_Insert.Text);
text_Insert.Text = string.Empty;
}
该程序还能够从listbox
中删除项目,因此删除布尔值和数字关系,以防它保留在保存的文件中,并在输入或重新输入类似的数据项时重新关联。
private void button_Remove_Click(object sender, EventArgs e)
{
listBox_Movielist.Items.Remove(this.listBox_Movielist.SelectedItem);
}
另外,以。txt为扩展名的保存文件是否适合这样的内容?如果不是,那会是什么?
虽然ListBox
项的类型是object
,但它们将在ListBox
中作为字符串显示,使用从.ToString()
项方法返回的值。
您可以使用CheckBox
和NumericUpDown
创建user control
,并将其添加到ListBox.Items
集合中,但不要期望在ListBox
中看到控件,您将只看到调用ToString()
方法返回的用户控件的字符串表示形式。
你可以重写ToString()
方法来显示用户控件内部控件的状态,我建议这样做:
public override string ToString()
{
return string.Format("{0}, {1}",
MyCheckBox.CheckState.ToString(),
MyNumericUpDown.Value.ToString()
);
}
首先,您可以创建存储布尔值和数值的类:
class DataValue
{
public bool Checked { get; set; }
public int Number { get; set; }
}
然后可以声明Dictionary<String, DataValue>
,它将文本框中的文本存储为键,并将数据存储为新的DataValue
对象。
如果你只是在列表框中插入新项,那么在字典中添加新键。如果要获取列表框项的信息,请按键从字典中获取。