从类到表单的图形
本文关键字:图形 表单 | 更新日期: 2023-09-27 18:19:21
好的,所以我需要在c#中制作一个简单的动画作为加载图标。这一切都很好,所以让我们以这个正方形为例
PictureBox square = new PictureBox();
Bitmap bm = new Bitmap(square.Width, square.Height);
Graphics baseImage = Graphics.FromImage(bm);
baseImage.DrawRectangle(Pens.Black, 0, 0, 100, 100);
square.Image = bm;
于是我制作了我的动画,这里的一切都工作了,但后来我意识到我需要我的动画在一个类中,这样我就可以从我的同事的程序中调用它来使用动画。这就是问题出现的地方,我创建了我的类,我用同样的方式做了所有的事情,但是在一个类而不是表单中,我从我的表单中调用我的类,但是屏幕是空白的,没有动画。为了做到这一点,是否需要通过一些东西?
namespace SpinningLogo
{//Here is the sample of my class
class test
{
public void square()
{
PictureBox square = new PictureBox();
Bitmap bm = new Bitmap(square.Width, square.Height);
Graphics baseImage = Graphics.FromImage(bm);
baseImage.DrawRectangle(Pens.Black, 0, 0, 100, 100);
square.Image = bm;
}
}
}
private void button1_Click(object sender, EventArgs e)
{//Here is how I call my class
Debug.WriteLine("11");
test square = new test();
square.square();
}
将test
类的引用传递给表单上的PictureBox
:
namespace SpinningLogo
{
class test
{
public void square(PictureBox thePB)
{
Bitmap bm = new Bitmap(thePB.Width, thePB.Height);
Graphics baseImage = Graphics.FromImage(bm);
baseImage.DrawRectangle(Pens.Black, 0, 0, 100, 100);
thePB.Image = bm;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
test square = new test();
square.square(myPictureBox); //whatever the PictureBox is really named
}
您也可以通过Form
本身(使用this
),但随后您仍然必须标识PictureBox
控件(我假设)。
您应该将Form实例传递给测试类,而不是在测试类中定义PictureBox。PictureBox应该是Form的一个字段,通过Form实例你可以访问你的PictureBox