C# 以编程方式更新listox项值

C# 以编程方式更新listox项值,c#,winforms,C#,Winforms,我有一个列表框,其中有一些项目。在表单中单击按钮时,我需要将listbox选定项值与字符串连接起来。我怎样才能得到这个结果 private void button3_Click(object sender, EventArgs e) { if (lstItemCode.SelectedItem.ToString().Contains("Complete")) { lstItemCode.Text = lstItemCode

我有一个列表框,其中有一些项目。在表单中单击按钮时,我需要将listbox选定项值与字符串连接起来。我怎样才能得到这个结果

    private void button3_Click(object sender, EventArgs e)
    {

        if (lstItemCode.SelectedItem.ToString().Contains("Complete"))
        {
            lstItemCode.Text = lstItemCode.SelectedItem.ToString().Replace("Complete", string.Empty).Trim();
        }
        //else
        //{

        //}
    }

假设您已经用字符串而不是某种数据源表填充了列表框,那么列表。。。然后您可以通过这种方式更改SelectedItem行

private void button3_Click(object sender, EventArgs e)
{
    if(lstItemCode.SelectedItem != null)
    {
        string newText = lstItemCode
                            .SelectedItem
                            .ToString()
                            .Replace("Complete", string.Empty)
                            .Trim();
        lstItemCode.Items[lstItemCode.SelectedIndex] = newText;
    }
}

如果单击按钮时没有选择任何项目,则需要初始检查null。最后,使用Items集合并检索当前所选项目的索引来访问当前所选项目文本

我猜这就是您在单击事件中试图实现的目标:

if (lstItemCode.SelectedItem == null)
    return;

if (lstItemCode.SelectedItem.ToString().Contains("Complete"))
{
    int idx = lstItemCode.Items.IndexOf(lstItemCode.SelectedItem);

    if(idx != -1)
        lstItemCode.Items[idx] = lstItemCode.SelectedItem.ToString().Replace("Complete", string.Empty).Trim();
}

我们可以看到您已经尝试了什么吗?部分工作,但实际上没有将值添加到控件中