如何将复选框对象存储在列表中?

我CheckBox在 C# 中挣扎


 public formPCRBaseline(List<GetBaselineSectionTasks> m_objPCRCheck)

 {

     setDefaults(m_objPCRCheck);

 }


 private void setDefaults(List<GetBaselineSectionTasks> m_objPCRCheck)

 {

     richTextBoxPCRBaseline.BackColor = Color.White;


     foreach (GetBaselineSectionTasks i_objPCRCheck in m_objPCRCheck)

     {

         richTextBoxPCRBaseline.SelectionIndent = 0;

         CheckBox checkBox = new CheckBox();

         checkBox.Height = 20;

         checkBox.Width = 20;

         richTextBoxPCRBaseline.Controls.Add(checkBox);

         checkBox.Tag = i_objPCRCheck;

         richTextBoxPCRBaseline.SelectionIndent = 30;

         richTextBoxPCRBaseline.SelectedText = "Section : '" + i_objPCRCheck.taskname;

         richTextBoxPCRBaseline.SelectedText = "\n\n";

     }

}

所以这段代码返回给我一个带有一些复选框的对象列表,当我点击确认按钮时,我想选中选中的复选框,所以我想做类似的事情:


private void buttonConfirm_Click(object sender, EventArgs e, out List<GetBaselineSectionTasks> m_objCheckeditem)

{

    int i = 0;

    m_objCheckeditem = new List<GetBaselineSectionTasks>();

    foreach (CheckBox i_objCheck in richTextBoxPCRBaseline.Controls)

    {

        if (i_objCheck.Checked)

        {

            m_objCheckeditem.Add(i_objCheck.Tag);

            MessageBox.Show(i_objCheck.Tag.ToString());

        }

        i++;

    }

}    

我得到了这个错误


CS1503 参数 1:无法从“对象”转换为“MyApplication.GetBaselineSectionTasks”


它来自这条线: m_objCheckeditem.Add(i_objCheck.Tag);


这是我第一次使用 .Tag 属性,所以我建议它不是那样工作的。


知道如何获取我的托运物品并将其退回吗?


白猪掌柜的
浏览 172回答 1
1回答

UYOU

因为 Tag 属性用于存储任意数据,所以它的类型是System.Object.您不能将 System.Object 类型的对象添加到GetBaselineSectionTasks.&nbsp;因此,您只需要将其转换为适当的类型。m_objCheckeditem.Add(i_objCheck.Tag&nbsp;as&nbsp;MyApplication.GetBaselineSectionTasks);
打开App,查看更多内容
随时随地看视频慕课网APP