I’m attempting to draw things on a form through a class. Here is the code.
public static void DrawStatBars()
{
Graphics g = Graphics.FromImage(Graphic.StatBarBackbuffer);
Font fnt = new Font("Microsoft Sans Serif", 8, FontStyle.Bold);
g.DrawImage(Graphic.EmptyHPBar, new Point(12, 12));
g.DrawImage(Graphic.EmptyManaBar, new Point(12, 35));
g.DrawImage(Graphic.EmptyEXPBar, new Point(12, 58));
g.DrawImage(Graphic.HPBar, new Rectangle(12, 15, (int)picHpWidth, Graphic.HPBar.Height), new Rectangle(0, 0, (int)picHpWidth, Graphic.HPBar.Height), GraphicsUnit.Pixel);
g.DrawImage(Graphic.ManaBar, new Rectangle(12, 38, (int)picManaWidth, Graphic.ManaBar.Height), new Rectangle(0, 0, (int)picManaWidth, Graphic.ManaBar.Height), GraphicsUnit.Pixel);
g.DrawImage(Graphic.EXPBar, new Rectangle(12, 61, (int)picEXPWidth, Graphic.EXPBar.Height), new Rectangle(0, 0, (int)picEXPWidth, Graphic.EXPBar.Height), GraphicsUnit.Pixel);
g.DrawString(lblHPText, fnt, new SolidBrush(Color.Black), 40, 15);
g.DrawString(lblManaText, fnt, new SolidBrush(Color.Black), 40, 38);
g.DrawString(lblEXPText, fnt, new SolidBrush(Color.Black), 40, 63);
g.Dispose();
g = frmMainGame.picGeneral.CreateGraphics;
g.DrawImage(Graphic.StatBarBackbuffer, new Point(0, 0));
g.Dispose();
}
The problem is g = frmMainGame.picGeneral.CreateGrpahics;. Since the control is not static how would I go about accessing it through a class instead of moving the code and having to re-code it to be in the code for the form itself.
You could add an event to handle your PictureBox.Paint method
Turn your method into an extension method