【问题标题】:Updating a listox Item value programatically [closed]以编程方式更新列表框项目值[关闭]
【发布时间】:2015-02-09 11:49:33
【问题描述】:

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

    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
        //{

        //}
    }

【问题讨论】:

  • 我们可以看看你已经尝试了什么吗?

标签: c# winforms


【解决方案1】:

假设您已经用字符串而不是某种数据源(表格、列表...)填充列表框,那么您可以通过这种方式更改 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 集合到达当前选定项文本并检索当前选定项的索引

【讨论】:

  • 部分工作,但实际上并未将值添加到控件中
【解决方案2】:

我猜这就是您在点击事件中想要实现的目标:

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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    相关资源
    最近更新 更多