【问题标题】:Using a Treeview with Checkboxes使用带有复选框的树视图
【发布时间】:2016-07-12 00:27:05
【问题描述】:

我有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 a checkBoxes 时可以正常工作,但在deselecting 时不能正常工作

【问题讨论】:

  • 我刚刚注意到上一个问题中没有的内容,您在每次检查后添加文本,而应该在检查所有框后完成!
  • 好的,你的意思是把所有的 If 语句放在一个方法中吗?

标签: c# winforms checkbox treeview


【解决方案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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2015-04-13
    相关资源
    最近更新 更多