2017-04-21 25 views
0

我被困在C#中创建复选框。我想在动态生成的图片框上按钮点击动态生成复选框。我的c#代码不能像我期望的那样工作。以下代码会在我的表单上生成复选框,但不会在图片框中生成。动态生成c中picturebox上的复选框#

请建议我一些想法,使我得到复选框链接到图片框

Checkbox on picturebox

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; 
} 
+0

图片框可以包含子控件。使用'YourPictureBox.Controls.Add(chk);'并根据您的要求对齐复选框。 –

回答

0

试试这个代码:

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(); 
} 
+0

现在它的工作。感谢您的解决方案R. Gadeev – Ren

+0

不客气,任。请接受我的回答:D –

0

你加入复选框到您的窗体:

this.Controls.Add(chk); 

这就赋予适当的父到您的复选框。要将任何控件添加到任何其他可以包含子控件的控件,您必须执行相同的操作。因此,例如:

要添加复选框面板:

panel.Controls.Add(chk); 

要添加复选框,图片框:

pictureBox.Controls.Add(chk); 

等。

+0

我试过了,但控件智能感知不能显示picturebox.Not能够将控件添加到picturebox。 – Ren