所以我通过点击图片在列表框中添加项目。 如果项目被单击或多次添加,它会将自身复制到列表框的下一行。我想要的是具有计数器的项目,该计数器将计算它被点击的实例数。
到目前为止,这是我的代码:
int ctr = 1;
private void item_img1_Click(object sender, EventArgs e)
{
if (!orderList.Items.Contains(item1.Text))
{
orderList.Items.Add(item1.Text + ctr);
ctr++;
}
}
答案 0 :(得分:1)
请注意,您实际上并未添加item1.Text
;您正在添加item1.Text + ctr
。这就是为什么您的if
条款不会阻止您添加重复项的原因。
答案 1 :(得分:0)
使用此代码:
span
其中ItemWrapper是class ItemWrapper
{
public object item;
public string text;
public int ctr = 1;
public override string ToString()
{
return text + " (" + ctr + ")";
}
}
private void item_img1_Click(object sender, EventArgs e)
{
bool found = false;
foreach (var itm in orderList.Items)
if ((itm as ItemWrapper).text == item1.Text)
{
(itm as ItemWrapper).ctr++;
found = true;
break;
}
if (!found)
orderList.Items.Add(new ItemWrapper() { item = item1, text = item1.Text, ctr = 1 });
}
对象的包装器,并且覆盖item
方法允许ToString()
将对象显示为您定义的格式。