【问题标题】:checkedlistbox operation in c#C#中的checkedlistbox操作
【发布时间】:2012-10-10 04:30:21
【问题描述】:

我正在开发一个使用 CheckedListBox 的 C# 应用程序。

CheckedListBox 包含科目名称,例如:会计、OC、物理、经济学、数学等...

我有一个数据库表,其中费用与特定科目相关:

例如表名费用:

Subject      |     Fee

Accounting         2000
Economics          3000
OC                 2000   

我想构建应用程序,当用户点击 CheckedListBox 中的主题时,它的费用应该自动添加到总数中。

为此,我尝试了不同的 CheckedListBox 事件:ClickSelectedIndexChangedItemCheck 等...

但是当我对 CheckedListBox 进行第一次检查时,我没有得到正确的行为。

为了测试,我在 CheckedListBox 中添加了以下科目:会计、经济学和数学。

这就是我的事件处理程序中的内容:

for(int i=0; i<chlstbox.CheckedItems.Count; i++)
{
    messagebox.show(chklstbox.CheckedItems[i].ToString());
}

当我检查第一个主题会计时,它没有显示任何消息框。但是当我点击经济学时,它会显示账户,然后是经济学。

在这种情况下,当我第一次单击“会计”时,它应该会显示“会计”。取消勾选主题也没有回复。

我该怎么办?我应该使用任何与之相关的特定事件或技术吗?

【问题讨论】:

  • 发布您的事件处理程序代码。
  • 先生,事件处理程序代码是我在帖子中编写的for循环代码
  • 这不是有效的语法,所以我认为您没有显示整个函数。
  • 是的,请稍等。我将编辑我的帖子
  • 现在可以了吗?还是我应该添加更多内容?

标签: c# .net checkedlistbox


【解决方案1】:

如果您查看ItemChecketEventArgs,您将看到正在选择的项目的当前值、旧值和索引。所以尝试这样的事情。 ItemCheck 事件让您在实际发生变化之前就知道发生了什么变化。

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (e.NewValue == CheckState.Checked)
    {
        MessageBox.Show(checkedListBox1.Items[e.Index].ToString());
    }
}

【讨论】:

  • 非常感谢。完美地工作。再次感谢...今天也学到了新东西
猜你喜欢
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多