繁体   English   中英

C#中的checkedlistbox操作

[英]checkedlistbox operation in c#

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

当我选中“会计”的第一个主题时,它不会显示任何消息框。 但是,当我单击“经济学”时,它将显示“帐户”,然后显示“经济学”。

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

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

如果查看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());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM