我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 属性,所以我建议它不是那样工作的。
知道我怎样才能拿到我的托运物品并退回它们吗?
由于 Tag 属性用于存储任意数据,因此其类型为System.Object
。
您不能将 System.Object 类型的对象添加到GetBaselineSectionTasks
. 所以你只需要将它转换为适当的类型。
m_objCheckeditem.Add(i_objCheck.Tag as MyApplication.GetBaselineSectionTasks);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句