c# - .NET 列表框 : in ItemChecked event know if item was clicked

标签 c# .net winforms events listbox

我的 Winforms 应用程序中有一个 ListBox,我需要处理 ItemChecked,因为每次用户点击一个项目时我需要一些东西。问题是我还需要在表单的其他一些事件中更改 Checked 属性。在那些情况下,我需要避免做那些事情。

例子:

private void listBox1_ItemChecked(object sender, ItemCheckedEventArgs e)
{
  if (true) //Should check if item was clicked.
  {
     //Do some stuff
  }
  else //If the event was fired because I changed the Checked property from the code
  {
     //Do some other stuff
  }
}

谢谢

最佳答案

如果我对您的理解正确,我认为您想在幕后更改 Checked 属性时取消订阅 ItemCheck 事件(即用户没有导致 Checked 属性更改)。

例如:

public void SetupListBoxEnables()
{  
   // Do not listen for Checked change events
   listBox1.ItemCheck -= listBox1_ItemChecked;
   // Change a bunch of Checked properties
   // ....

   // Listen again for Checked change events
   listBox1.ItemCheck += listBox1_ItemChecked;
}

关于c# - .NET 列表框 : in ItemChecked event know if item was clicked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5903770/

相关文章:

C# 用户控件设计时序列化

c# - 身份框架和自定义密码哈希器

javascript - JSON从js到MVC Controller

c# - 加载资源: 403 forbidden with . js优化失败

c# - 多态性和依赖注入(inject)

.net - 在 .NET 中操作 EPS/AI 文件

.net - .NET 中的包装类型 : struct or class?

c# - DataGridView 是可编辑的,但不会使用 Entity Framework 将更改发送回数据库

c# - 为什么当计时器倒计时时它从不在秒上显示 0?

c# - 我应该如何从后台线程请求用户输入?