int200
asked on
GDI Drawing Lines triggered off a button click.
I have no problem with the following code:
/************************* **
protected override void OnPaint(PaintEventArgs pe)
{
Graphics g = pe.Graphics ;
Pen L1Pen = new Pen(Color.Red);
Point L1x = new Point(100, 800);
Point L1y = new Point(275, 800);
Pen L2Pen = new Pen(Color.Blue);
Point L2x = new Point(275, 800);
Point L2y = new Point(625, 800);
Pen L3Pen = new Pen(Color.Orange);
Point L3x = new Point(625, 800);
Point L3y = new Point(775, 800);
Pen L4Pen = new Pen(Color.Black);
Point L4x = new Point(775, 800);
Point L4y = new Point(950, 800);
g.DrawLine(L1Pen, L1x, L1y);
g.DrawLine(L2Pen, L2x, L2y);
g.DrawLine(L3Pen, L3x, L3y);
g.DrawLine(L4Pen, L4x, L4y);
}
***************/
However when I attempt to build the following code to trigger it in a off a button click I receive the following build error: The type or namespace name 'pe' could not be found (are you missing a using directive or an assembly reference?)
.
For example:
/************************* ******
private void button1_Click(object sender, System.EventArgs e)
{
Graphics g = pe.Graphics ;
Pen L1Pen = new Pen(Color.Red);
Point L1x = new Point(100, 800);
Point L1y = new Point(275, 800);
Pen L2Pen = new Pen(Color.Blue);
Point L2x = new Point(275, 800);
Point L2y = new Point(625, 800);
Pen L3Pen = new Pen(Color.Orange);
Point L3x = new Point(625, 800);
Point L3y = new Point(775, 800);
Pen L4Pen = new Pen(Color.Black);
Point L4x = new Point(775, 800);
Point L4y = new Point(950, 800);
g.DrawLine(L1Pen, L1x, L1y);
g.DrawLine(L2Pen, L2x, L2y);
g.DrawLine(L3Pen, L3x, L3y);
g.DrawLine(L4Pen, L4x, L4y);
}
**************/
/*************************
protected override void OnPaint(PaintEventArgs pe)
{
Graphics g = pe.Graphics ;
Pen L1Pen = new Pen(Color.Red);
Point L1x = new Point(100, 800);
Point L1y = new Point(275, 800);
Pen L2Pen = new Pen(Color.Blue);
Point L2x = new Point(275, 800);
Point L2y = new Point(625, 800);
Pen L3Pen = new Pen(Color.Orange);
Point L3x = new Point(625, 800);
Point L3y = new Point(775, 800);
Pen L4Pen = new Pen(Color.Black);
Point L4x = new Point(775, 800);
Point L4y = new Point(950, 800);
g.DrawLine(L1Pen, L1x, L1y);
g.DrawLine(L2Pen, L2x, L2y);
g.DrawLine(L3Pen, L3x, L3y);
g.DrawLine(L4Pen, L4x, L4y);
}
***************/
However when I attempt to build the following code to trigger it in a off a button click I receive the following build error: The type or namespace name 'pe' could not be found (are you missing a using directive or an assembly reference?)
.
For example:
/*************************
private void button1_Click(object sender, System.EventArgs e)
{
Graphics g = pe.Graphics ;
Pen L1Pen = new Pen(Color.Red);
Point L1x = new Point(100, 800);
Point L1y = new Point(275, 800);
Pen L2Pen = new Pen(Color.Blue);
Point L2x = new Point(275, 800);
Point L2y = new Point(625, 800);
Pen L3Pen = new Pen(Color.Orange);
Point L3x = new Point(625, 800);
Point L3y = new Point(775, 800);
Pen L4Pen = new Pen(Color.Black);
Point L4x = new Point(775, 800);
Point L4y = new Point(950, 800);
g.DrawLine(L1Pen, L1x, L1y);
g.DrawLine(L2Pen, L2x, L2y);
g.DrawLine(L3Pen, L3x, L3y);
g.DrawLine(L4Pen, L4x, L4y);
}
**************/
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
There are two possibilites.
First, it doesn't appear the button has a event handler wired up.
You need something like
this.button1.click += new ....
I'm not at my C# machine so I don't have the exact syntax handy.
Second, the Y coordinate you are using (825) is probably off the bottom of the window. That is why I used 80 instead for testing purposes.
First, it doesn't appear the button has a event handler wired up.
You need something like
this.button1.click += new ....
I'm not at my C# machine so I don't have the exact syntax handy.
Second, the Y coordinate you are using (825) is probably off the bottom of the window. That is why I used 80 instead for testing purposes.
ASKER
Hi Brad,
You were correct, I didn't double click on the button from the form which auto-generates the handler. I just added the button and put the code in.
It works fine now. Thanks! By the way, I'm running 1600x1200 so that's why I'm using such large values.
Now, I need to look into how to pass variables a the points so I can use one function I can pass the x and y coorinates to.
Thanks and Best Regards!
You were correct, I didn't double click on the button from the form which auto-generates the handler. I just added the button and put the code in.
It works fine now. Thanks! By the way, I'm running 1600x1200 so that's why I'm using such large values.
Now, I need to look into how to pass variables a the points so I can use one function I can pass the x and y coorinates to.
Thanks and Best Regards!
ASKER
Here is the entire code:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace GDITest2
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Butto
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Cont
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Butto
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(72, 64);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(96, 32);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.but
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
private void PaintMe( Graphics g )
{
Pen L1Pen = new Pen(Color.Red);
Point L1x = new Point(100, 1000);
Point L1y = new Point(100, 825);
Pen L2Pen = new Pen(Color.Blue);
Point L2x = new Point(100, 825);
Point L2y = new Point(100, 475);
Pen L3Pen = new Pen(Color.Orange);
Point L3x = new Point(100, 475);
Point L3y = new Point(100, 325);
Pen L4Pen = new Pen(Color.Black);
Point L4x = new Point(100, 325);
Point L4y = new Point(275, 325);
g.DrawLine(L1Pen, L1x, L1y);
g.DrawLine(L2Pen, L2x, L2y);
g.DrawLine(L3Pen, L3x, L3y);
g.DrawLine(L4Pen, L4x, L4y);
}
private void button1_Click(object sender, System.EventArgs e)
{
System.Windows.Forms.Butto
PaintMe( b.Parent.CreateGraphics() );
}
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
}
}
Thanks