C# 从其他类向窗体添加控件
我试图在类中创建picturebox,并使用方法将其添加到表单中,它没有任何错误,但不显示picturebox 类别:C# 从其他类向窗体添加控件,c#,class,controls,C#,Class,Controls,我试图在类中创建picturebox,并使用方法将其添加到表单中,它没有任何错误,但不显示picturebox 类别: class Igrac { public int ID; public string Ime; public int Polje; public int Novac; public Igrac(int id, string ime, int polje, int novac) {
class Igrac
{
public int ID;
public string Ime;
public int Polje;
public int Novac;
public Igrac(int id, string ime, int polje, int novac)
{
ID = id;
Ime = ime;
Polje = polje;
Novac = novac;
}
public void Pijun (int LocX,Image image, Form1 form)
{
PictureBox pijun = new PictureBox();
pijun.Size = new Size(20, 40);
pijun.Location = new Point(LocX,655);
pijun.Image = image;
form.Controls.Add(pijun);
}
}
主程序:
private void Form1_Load(object sender, EventArgs e)
{
Igrac igrac1 = new Igrac(1, ImeIgraca1, 0, 10000);
igrac1.Pijun(643, Properties.Resources.Pijun1,this);
}
我已经粘贴了你的代码,它的效果很好,但是请检查
newpoint(LocX,655)
constructor中的参数。如果它大于窗体大小,控件将是外部窗口,因为(0,0)点位于左上角。它被另一个控件重叠了…什么是Igrica???窗体的名称,很抱歉,我现在将使用错误的窗体引用编辑它,这是传统的错误,但当您传递此时,它看起来不一样。添加form.Show()代码>这样您就可以100%确定了。位置错误,控件超出表单边界很容易,请注意,使用的值非常高。所以尝试低值。而且很容易让控件与另一个控件重叠,添加pijun.BringToFront()。@HansPassant它与另一个控件重叠,非常感谢,很抱歉占用您的时间!)