【问题标题】:How do you disable CheckBoxes in ListView?如何禁用 ListView 中的复选框?
【发布时间】:2018-12-07 07:11:33
【问题描述】:

如果您在“txtProdBarcode”部分键入一个单词,列表将像图片一样位于底部。列表部分名称是“lvBase”,即 aListView

然后,当您在“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”部分的复选框。

但我只想禁用复选框。

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

【问题讨论】:

  • 什么是'lvBase'控件类型?你不能禁用那个控件,这样里面的控件就不能被访问或点击了吗?
  • 你试过.IsEnabled = false吗?
  • 您的 lvBase 似乎是一些基于 System.Windows.Forms.ListView 的自定义控件,它以自己的自定义方式操作复选框,我们不知道它是如何做到的。但是,它的 .CheckBoxes 属性应该包含一些与复选框相关的功能。如果您可以查找并使用该属性中的代码更新您的问题,我们可以帮助您找到解决问题的方法。

标签: c# winforms listview


【解决方案1】:

为了防止检查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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2010-10-24
    • 2014-07-11
    • 1970-01-01
    相关资源
    最近更新 更多