如何在C#中启动方法运行

时间:2012-06-05 04:01:43

标签: c# .net visual-studio-2010 visual-studio

我第一次打开应用程序时尝试制作一个绘制图片框背景的方法。有没有办法做到这一点?

我试过这个

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);
        }

但它不起作用。

4 个答案:

答案 0 :(得分:2)

我个人会覆盖Forms OnPaint方法,这样当你重新绘制Form包括初始加载时,你绘制的背景会被重绘,如果你要添加图像或位图你应该像其他人所说的那样使用Form Load事件。

从上面链接:

  

重写OnPaint方法以在每次重绘图像时重新绘制   表格被涂上;否则图像只会持续到下一个   重画


试一试。我发现使用OnPaint方法在初始加载时有点不稳定,但是如果我使用Timer(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();
} 

答案 1 :(得分:1)

如果你在WinForms(?)中这样做,有什么理由你不能在主窗体的OnLoad方法中这样做吗?

答案 2 :(得分:1)

你是说你想在应用程序运行时做某事吗?如果是这样,那么只需在Main()/ OnLoad()中完成所有操作。如果你想在机器启动时想要这样做,那就扔掉一些windows标签吧! :)

答案 3 :(得分:1)

如果您正在使用表单,可以在[设计]窗口中双击表单,它将转到您的“Form1”_Load方法,其中代码在表单加载时运行。