Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中使方法在启动时运行#_C#_.net_Visual Studio 2010_Visual Studio - Fatal编程技术网

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方法中调用该方法。