我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 属性,所以我建议它不是那样工作的。知道如何获取我的托运物品并将其退回吗?
1 回答
UYOU
TA贡献1878条经验 获得超4个赞
因为 Tag 属性用于存储任意数据,所以它的类型是System.Object
.
您不能将 System.Object 类型的对象添加到GetBaselineSectionTasks
. 因此,您只需要将其转换为适当的类型。
m_objCheckeditem.Add(i_objCheck.Tag as MyApplication.GetBaselineSectionTasks);
- 1 回答
- 0 关注
- 165 浏览
添加回答
举报
0/150
提交
取消