繁体   English   中英

如何使方法在C#启动时运行

[英]How to make a method run on startup in C#

我正在尝试创建一种在首次打开应用程序时绘制图片框背景的方法。 有没有办法做到这一点?

我已经试过了

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

但它不起作用。

我个人将重写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();
} 

如果在WinForms(?)中执行此操作,是否有任何原因无法在主窗体的OnLoad方法中执行此操作?

您是说要在应用运行时执行某些操作吗? 如果是这样,那么只需在Main()/ OnLoad()中完成所有操作即可。 如果您说要在计算机启动时执行此操作,请在此上面添加一些Windows标签! :)

如果您使用的是表格,则可以在[设计]窗口中双击表格,它将带您进入“ Form1” _Load方法,该方法在加载表格时运行代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM