在c#中动态生成图片框上的复选框

Dynamically generating checkbox on picturebox in c#

我一直在用 C# 创建复选框。我想在单击按钮时在动态生成的图片框中动态生成复选框。我的 C# 代码没有按预期工作。以下代码会在我的表单上生成复选框,但不会在图片框中生成复选框。

请给我一些建议,以便我的复选框链接到图片框

private void btndlt_Click(object sender, EventArgs e)
{
    add_chkbx();   
}

public CheckBox add_chkbx()
{
    CheckBox chk = new CheckBox();
    chk.Location = new System.Drawing.Point(15, 190);
    chk.Size = new System.Drawing.Size(30, 30);
    this.Controls.Add(chk);
    return chk;
}

您通过以下方式向表单添加复选框:

this.Controls.Add(chk);

这会为您的复选框指定正确的父项。要将任何控件添加到可以包含子控件的任何其他控件,您必须执行相同的操作。例如:

要将复选框添加到面板:

panel.Controls.Add(chk);

向 PictureBox 添加复选框:

pictureBox.Controls.Add(chk);

以此类推

试试这个代码:

public void add_chkbx()
{
    // for each picture box add check box
    foreach (Control cont in this.Controls)
    {
        if (!(cont is PictureBox))
            continue;
        CheckBox chk = new CheckBox();
        chk.Size = new System.Drawing.Size(30, 30);
        chk.BackColor = Color.Transparent; // transparent color for checkbox
        cont.Controls.Add(chk);
    }
}

private void Button1Click(object sender, EventArgs e)
{
    add_chkbx();
}