2015-05-14 39 views
0

添加用户控件dynammiclly到面板在我的表单我有一个按钮,我希望每个点击时用户控件添加到面板:上buttonClick

public partial class AddInstanceForm : MetroForm 
{   
     private List<Material> material { get; set; } 
     public AddInstanceForm() 
     { 
      InitializeComponent(); 
     } 

     // get data from db for mycombobox which exit in MaterilControl 
     private void AddInstanceForm_Load(object sender, EventArgs e) 
     { 
      using(DBContext db=new DBContext()) 
      { 
       material = db.Materials.ToList(); 
      } 
     } 

     // This Attached to button click 
     private void anotherMaterial_Click(object sender, EventArgs e) 
     {   
      MaterialControl mc = new MaterialControl(material); 
      this.SuspendLayout(); 

      panel1.Controls.Add(mc);  

      //EDIT 
      this.Invalidate(); 
      this.Update(); 

      this.ResumeLayout(false); 
     } 
} 

的问题是,只是一个用户控件添加到面板,无论按钮被点击了多少次:

public partial class MaterialControl : UserControl 
{ 
     private MaterialView _material; 
     private List<Material> MaterialboData { get; set; } 
     public MaterialView Material 
     { 
      get 
      { 
       _material.Name=MaterialName.Text; 
       _material.Quntity = MaterialQu.Text; 
       _material.MaterialID = Convert.ToInt32(MaterialName.ValueMember); 
       return _material; 
      } 
      set 
      { 
       MaterialName.Text=value.Name; 
       MaterialQu.Text = value.Quntity; 
       MaterialName.ValueMember = Convert.ToString(_material.MaterialID); 
      } 
     } 

     public MaterialControl(List<Material> Data) 
     { 
      _material = new MaterialView(); 
      this.MaterialboData = new List<Material>(); 
      this.MaterialboData = Data; 
      InitializeComponent(); 
     } 
} 
+0

尝试在绘制控件后调用Invalidate()。 – Oscar

+0

仍然无法正常工作 –

回答

0

而是用新的顶部位置加入他们,如果你有一个专门只为这些控制面板,你可以使用Dock顶部,而不是和这会让面板自动为您设置控件。

+0

我试过了,但没有解决问题探针 –

+0

我尝试了无效+停靠顶部没有工作 –

+0

将简历失效并更新。 – mageos