Answer to Question #10430 in C# for Sunshine

Question #10430
I have a program with multiple forms. From Form1 I want to open Form2 and simultanously display a graphic (some lines), but I get only a blank form. I can only get the graphic displayed if I click on a button, but I need it to appear without intervention. How can I do it?

Here is the code for the second form:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;

namespace WindowsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
CenterToScreen();

}

private void Form2_Load(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
Pen p = new Pen(Color.SaddleBrown, 15);

g.DrawLine(p, 40, 400, 200, 400);
g.DrawLine(p, 80, 400, 80, 90);
g.DrawLine(p, 73, 90, 300, 90);
1
Expert's answer
2012-06-05T10:31:13-0400
Try drawing your graphics in a separate thread:
 Task.Factory.StartNew( () =>
{
                using (Graphics g = this.CreateGraphics())
{
Pen p = new Pen(Color.SaddleBrown,15);
                    g.DrawLine(p, 40, 400, 200, 400);
g.DrawLine(p, 73, 90, 300, 90);
                   g.DrawLine(p, 40, 400, 200, 400);
//do your drawing routines here
                }
//invoke an action against the main thread to get the graphics on the form
this.Invoke( new Action(() =>
{

}));
});

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS