使用带有复选框的树视图

Using a Treeview with Checkboxes

我有 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 中的全部、一个、两个、三个或 none。 如果 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 a checkBoxes 时工作正常,但在 deselecting

时不工作

我手动方式,希望你明白。

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;
    }
}