如果您在“ txtProdBarcode”部分键入一个单词,则列表将位于图片底部。列表部分的名称是“ lvBase”,它是一个ListView

然后,当您在“ searchText”部分上键入一个单词时,“ lvBase”部分上的复选框应该不可单击。我不想删除复选框,但想防止选中它们。

我已尽力而为,但无法获得答案。

private void txtProdBarcode_TextChanged(object sender, EventArgs e)
{
    string searchText = txtProdBarcode.Text.ToUpper().Trim();

    if (searchText.Length > 0)
    {
        lvBase.CheckBoxes = false;
    }
    else
    {
        lvBase.CheckBoxes = true;
    }


此代码删除“ lvBase”部分上的复选框。

但是我只希望禁用复选框。

你们可以帮我解决这个问题吗?

最佳答案

为了防止检查ListView的项目,可以处理ItemCheck事件:

bool preventCheck = true;
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (preventCheck)  // for example: !string.IsNullOrEmpty(textBox1.Text)
        e.NewValue = e.CurrentValue;
}

10-04 11:57