2017-04-21 31 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