c#中的checkedlistbox操作

时间:2012-10-10 04:30:22

标签: c# .net checkedlistbox

我正在开发一个使用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());
}

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

在这种情况下,它应该在我第一次点击会计时显示会计。当我取消检查主题时,没有回复。

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

1 个答案:

答案 0 :(得分:1)

如果查看ItemChecketEventArgs,您将看到正在选择的项目的CurrentValue,OldValue和Index。所以尝试这样的事情。 ItemCheck事件可让您在物理更改之前了解更改内容。

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