Thanks,
here is more of the code, its a drawing program, if I put the breakpoint at
the start of the method, it will break the first time when a line is drawn,
then anytime the mouse is moved over the form area (after its continued)
I will include all the code at the bottom here. I tried "this" but that
doesnt work, I hate to use the excuse of "it works in vb.net" but (it
does). When countx is declared? outside of the method, dont tell me scope
got me also,
public bool IsInLine(Point pnt)
{
Pen p = new Pen(Color.Black,PenWidth);
GraphicsPath pth=new GraphicsPath();
pth.AddLine(StartPoint,EndPoint);
pth.Widen(p);
p.Dispose();
if(pth.IsVisible(pnt))
{
countx = countx+=1;
//textBox1.Text = "count is : " + countx.ToString() ;
//findlines.Line (TTT.Text) = "ddfdfd";
//TextBox TTT;
this.TTT.Text = "fs" + countx.ToString();
return true;
}
// textBox textBox1 = new TextBox();
return false;
}
}
And the entire Form:
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace findlines
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private Line CurrentLine;
private bool AddingLine;
private LineArray Lines=new LineArray();
private Point LastPos;
public System.Windows.Forms.TextBox TTT;
private bool first = true;
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()
{
System.Configuration.AppSettingsReader configurationAppSettings = new
System.Configuration.AppSettingsReader();
this.TTT = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// TTT
//
this.TTT.Location = new System.Drawing.Point(104, 16);
this.TTT.Name = "TTT";
this.TTT.Size = new System.Drawing.Size(168, 20);
this.TTT.TabIndex = 0;
this.TTT.Text = ((string)(configurationAppSettings.GetValue("TTT.T ext",
typeof(string))));
this.TTT.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.TTT);
this.Name = "Form1";
this.Text = "Form1";
this.MouseDown += new
System.Windows.Forms.MouseEventHandler(this.Form1_ MouseDown);
this.MouseUp += new
System.Windows.Forms.MouseEventHandler(this.Form1_ MouseUp);
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_ Paint);
this.MouseMove += new
System.Windows.Forms.MouseEventHandler(this.Form1_ MouseMove);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
CurrentLine = new Line();
CurrentLine.StartPoint=new Point(e.X,e.Y);
AddingLine = true;
}
private void Form1_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{
Graphics g=CreateGraphics();
if(!AddingLine)
{
foreach(Line l in Lines)
{
if(l.IsInLine(new Point(e.X,e.Y)))
l.DrawLine(g,Color.Red);
else
l.DrawLine(g,Color.Black);
}
LastPos = new Point(e.X,e.Y);
}
else
{
if(!first)
ControlPaint.DrawReversibleLine(PointToScreen(Curr entLine.StartPoint),
PointToScreen(LastPos), Color.White);
LastPos = new Point(e.X,e.Y);
ControlPaint.DrawReversibleLine(PointToScreen(Curr entLine.StartPoint),
PointToScreen(LastPos), Color.White);
first=false;
}
}
private void Form1_MouseUp(object sender,
System.Windows.Forms.MouseEventArgs e)
{
CurrentLine.EndPoint=new Point(e.X,e.Y);
CurrentLine.PenWidth=5;
Lines.Add(CurrentLine);
AddingLine = false;
Invalidate();
}
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs
e)
{
foreach(Line l in Lines)
l.DrawLine(e.Graphics,Color.Black);
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
}
}
public class Line
{
public Point StartPoint;
public Point EndPoint;
public int PenWidth;
public void DrawLine(Graphics g,Color c)
{
Pen p=new Pen(c,PenWidth);
g.DrawLine(p,StartPoint,EndPoint);
p.Dispose();
}
TextBox TTT = new TextBox() ;
//TextBox textBox1 = new TextBox();
public int countx = 0; // = 0; // = 0;
// countx = 0;
public bool IsInLine(Point pnt)
{
Pen p = new Pen(Color.Black,PenWidth);
GraphicsPath pth=new GraphicsPath();
pth.AddLine(StartPoint,EndPoint);
pth.Widen(p);
p.Dispose();
if(pth.IsVisible(pnt))
{
countx = countx+=1;
//textBox1.Text = "count is : " + countx.ToString() ;
//findlines.Line (TTT.Text) = "ddfdfd";
//TextBox TTT;
TTT.Text = "fs" + countx.ToString();
return true;
}
// textBox textBox1 = new TextBox();
return false;
}
}
public class LineArray : CollectionBase
{
public void Add(Line l)
{
List.Add(l);
}
public Line this[int index]
{
get{return (Line)List[index];}
set{List[index]=value;}
}
}
}
"Bruce Wood" <br*******@canada.com> wrote in message
news:11**********************@f14g2000cwb.googlegr oups.com...
Well, first of all, as you pointed out, C# is case sensitive, so the
keyword is 'this', not 'This'.
Second, are you sure that you're not being bitten by the fact that the
text in the TextBox isn't redrawn until after your method returns to
the O/S? While your code is running, if you change the Text property of
TextBox, the TextBox is simply marked as "dirty" to be redrawn later,
when you're finished doing whatever you're doing. If you are running in
a loop and setting the value of the text box as you go, you won't see
it update until the end.
If the problem is that "countx" isn't being updated properly, then you
didn't show us enough code for us to know why, because we can't see
where countx is declared.