如果当前的列表框项目无效,则阻止选择新的列表框项目 属性

Prevent selecting new listbox item if current one has invalid property

我的设置表单有一个列表框,其中包含自定义 class 的对象。自定义 class 的属性很少,包括 IP 地址。

所有属性在表单中都有自己的文本框,它们的值保存在文本框的 textchanged 事件的列表中。如:

    private void textBoxIP_TextChanged(object sender, EventArgs e)
    {
        item item = (item)listBox1.SelectedItem;
        if (item != null)
        {
          item.IP = textBoxIP.Text;
        }            
        listBox1.DataSource = null;
        listBox1.DataSource = lista;
        listBox1.DisplayMember = "name";
    }

这是 SelectedIndexChanged 事件的代码:

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        item item = (item) listBox1.SelectedItem;
        if (item != null)
        {
            textBoxName.Text = item.name;
            textBoxDesc.Text = item.desc;
            textBoxIP.Text = item.IP.ToString();
            textBoxPort.Text = item.port.ToString();
        }
    }

现在我需要一种方法来防止用户在 IP 地址无效时使用一些反馈在列表框中选择新索引。我不知道该怎么做。我确实有一种检查 IP 字符串有效性的方法 returns true or false.

如果 IP 无效,为什么还要将 IP 放入列表框中?

当 textBoxIP.Text 无效时禁用列表框。