使用带有复选框的Treeview

时间:2016-03-24 12:04:55

标签: c# winforms checkbox treeview

我有treeView有几个Nodes喜欢这个

Question 1
Question 2
Question 3
Question 4

在每个节点中有4个checkboxes - Answer A, Answer B, Answer C, Answer D,根据点击的复选框,节点的文本将更改为Question1 - A,B,C,D。问题的答案可能意味着点击了checkboxes的全部,一个,两个,三个或没有一个。 如果checkboxunchecked,我想要删除的字母是什么 我的代码:

private void ckbAnswerA_CheckedChanged(object sender, EventArgs e)
    {

        updateAnswerA();
    }
void updateAnswerA()
    {
        var words = new List<string>();


        if (ckbOption1.Checked)
        {
            words.Add("A,");
            treeView1.SelectedNode.Text += string.Join(" ", words);
        }

等其他checkBoxes ...

上述代码在selecting checkBoxes时正常,但在deselecting

时无法正常工作

1 个答案:

答案 0 :(得分:1)

我手动方式,我希望你明白这个想法。

private void ckbAnswerA_CheckedChanged(object sender, EventArgs e)
{
    if (ckbAnswerA.Checked)
    {
        updateAnswerA(true);
    }
    else
    {
        updateAnswerA(false);
    }
}

private void updateAnswerA(bool flag)
{
    if(flag)
    {
        var words = new List<string>();
        words.Add("A,");
        treeView1.SelectedNode.Text += string.Join(" ", words);
    }
    else
    {
        string update = treeView1.SelectedNode.Text;
        update = update.Replace("A,", "");
        treeView1.SelectedNode.Text = update;
    }
}