C# 如何在C中使方法在启动时运行#
我试图创建一种方法,在我第一次打开应用程序时绘制图片框的背景。有办法做到这一点吗 我试过这个C# 如何在C中使方法在启动时运行#,c#,.net,visual-studio-2010,visual-studio,C#,.net,Visual Studio 2010,Visual Studio,我试图创建一种方法,在我第一次打开应用程序时绘制图片框的背景。有办法做到这一点吗 我试过这个 private void Form1_Load(object sender, EventArgs e) { DrawBackground(); } public void DrawBackground() { Graphics SimWindow = pictureBoxSimDisplay.CreateGraphics();
private void Form1_Load(object sender, EventArgs e)
{
DrawBackground();
}
public void DrawBackground()
{
Graphics SimWindow = pictureBoxSimDisplay.CreateGraphics();
SolidBrush brush = new SolidBrush(Color.Green);
SimWindow.FillRectangle(brush, 0, 211, 491,5);
}
但是它不起作用。如果您在WinForms(?)中执行此操作,是否有任何原因您不能在主窗体的OnLoad方法中执行此操作?如果您在WinForms(?)中执行此操作,是否有任何原因您不能在主窗体的OnLoad方法中执行此操作?您是说您想在应用程序运行时执行某些操作吗?如果是这样,那么只需在Main()/OnLoad()中完成所有操作。如果您是说希望在机器启动时执行此操作,请在上面添加一些windows标记!:) 你是说你想在应用程序运行时做些什么?如果是这样,那么只需在Main()/OnLoad()中完成所有操作。如果您是说希望在机器启动时执行此操作,请在上面添加一些windows标记!:) 如果您使用表单,您可以双击[Design]窗口中的表单,它将带您进入“Form1”\u加载方法,在加载表单时,代码将在该加载方法中运行。如果您使用表单,您可以双击[Design]窗口中的表单,它将带您进入“Form1”_加载方法,其中在加载表单时运行代码。我个人会重写表单方法,这样在重新绘制表单(包括初始加载)时,您在其上绘制的背景将被重新绘制,如果您要添加图像或位图,则应如其他人所述使用表单加载事件 从以上链接: OnPaint方法将被重写,以便在每次 形式是绘画的;否则,该映像将只保留到下一个 重涂
试试这个。我发现使用OnPaint方法在初始加载时有点不稳定,但是如果我使用计时器(100ms)使表单无效,它每次都可以正常工作
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
DrawBackground();
}
public void DrawBackground()
{
Graphics SimWindow = pictureBoxSimDisplay.CreateGraphics();
SolidBrush brush = new SolidBrush(Color.Green);
SimWindow.FillRectangle(brush, 0, 211, 491, 5);
SimWindow.Dispose(); // Don't forget to dispose your Graphic Object
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
Invalidate();
}
我个人会重写Forms方法,这样在重新绘制表单(包括初始加载)时,您在其上绘制的背景将被重新绘制,如果您要添加图像或位图,则应使用Form load事件,如其他人所述 从以上链接: OnPaint方法将被重写,以便在每次 形式是绘画的;否则,该映像将只保留到下一个 重涂
试试这个。我发现使用OnPaint方法在初始加载时有点不稳定,但是如果我使用计时器(100ms)使表单无效,它每次都可以正常工作
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
DrawBackground();
}
public void DrawBackground()
{
Graphics SimWindow = pictureBoxSimDisplay.CreateGraphics();
SolidBrush brush = new SolidBrush(Color.Green);
SimWindow.FillRectangle(brush, 0, 211, 491, 5);
SimWindow.Dispose(); // Don't forget to dispose your Graphic Object
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
Invalidate();
}
您想只在开始时绘制picturebox的背景,而不是再次绘制它吗?我想一直保持它在那里,然后在您的OnLoad方法中,您应该编写如下内容:pictureBox1.Image=Image.FromFile(“your_pic.jpg”);如果我想用一种方法画它,我也可以这样做吗?是的,当然。但是你应该在OnLoad方法中调用该方法。你想只在开始时绘制picturebox的背景,而不是再次绘制背景吗?我想一直保持它在那里,然后在OnLoad方法中,你应该编写如下内容:pictureBox1.Image=Image.FromFile(“your_pic.jpg”);如果我想用一种方法画它,我也可以这样做吗?是的,当然。但您应该在OnLoad方法中调用该方法。