我尝试为赛车创建一个类“bgcar”,负责处理与某些赛车相关的所有变量,其中一个变量是赛车的图片,放在主表格上。所有变量加速位置位置汽油等工作(但我从下面删除)。
但是,加载和更新图像会产生问题。 我在下面的代码中尝试了一些变体,但到目前为止没有任何作用。
我可以想象有人会想为什么不要简单地在Main表单中写出来,但是我不想创建大量的表单变量,我希望一个类能够自己处理它并使用classtype.update() 。更新主表单。 这是一个winform应用程序。
namespace game
{
public class Main:Form
{
bgcar racecars;
public Main()
{
racecars = new bgcar();
racecars.update
//to add later
//traficlights.update
//people.update
}
}
class bgcar
{
public PictureBox[] wagon;
public bgcar() //constructor
{
wagon = new PictureBox[2];
//below wont work.
//while on the main form
// picturebox1.image new bitmap(game.Properties.Resources.SportwagonA)
//works, proving it does exist in the resource file.
wagon[0].image = new Bitmap(game.Properties.Resources.SportwagonA);
wagon[1].image = new Bitmap(game.Properties.Resources.SportwagonB);
}
public void update()
{
//displaying those images is also a problem
Random rnd = new Random();
int x = rnd.next(100);
int y = rnd.next(100);
Wagon[0].location = new point (x,y);
int x = rnd.next(100);
int y = rnd.next(100);
Wagon[1].location = new point (x,y);
}
}
}
==更新
先去吃饭,我现在想在我的Main:form上创建
一个public PictureBox[] sportcars
,然后在我的mainform中有一个例程
做的事情:sportscar = bgcar.wagon;不确定这是否有效。
答案 0 :(得分:1)
将表单传递到您的班级,以便您可以添加控件:
adb shell pm list packages com.your.domain \
| cut -d ':' -f 2 \
| tr -d '\r' \
| xargs -L1 -t adb uninstall
这是Class的更新版本:
public Main()
{
racecars = new bgcar(this); // <--- Pass the Form in
racecars.update();
}
答案 1 :(得分:0)
将您的picturebox array
定义为static
public static PictureBox[] wagon;
然后您可以使用其他类(如
)中的类名来访问它public class Main:Form
{
public Main()
{
bgcar.wagoon // and something happens
}
}
答案 2 :(得分:0)
所以你的racecars
课程在你使用它的方式上基本没用。每次创建一个新的PictureBox
实例都不会给你任何东西。你必须将它们添加到窗体(或其他父控件)中,它们将在里面绘制它们。
racecars = new bgcar();
racecars.update();
foreach(PictureBox pBox in racecars.wagon)
{
this.Controls.Add(pBox);
}