[#] Ciclo su una textbox

sabato 13 marzo 2010 - 15.54

Anonimo Profilo | Senior Member

Salve, mi dite come si fa ad fare che legge tutta la textbox inserendola in questo codice:
private void Simula_Click(object sender, EventArgs e) { Elabora_.Enabled = true; Elabora_.Interval = 10; pBelaboarazione.Value = 100; this.box.Image = null; Bitmap bmp = new Bitmap(this.box.Width / 2, this.box.Height / 2); Graphics g = Graphics.FromImage(bmp); Pen redPen = new Pen(Color.Red, 1 / g.DpiX); redPen.Width = 2; g.PageUnit = GraphicsUnit.Millimeter; List<PointF> pt = new List<PointF>(); string line = "" + tbCode.Text + ""; string[] coordinate = line.Split(';'); int x = Convert.ToInt32(coordinate[0]); int y = Convert.ToInt32(coordinate[1]); PointF p = new PointF(x, y); pt.Add(p); Pen pen = new Pen(Color.Black, 3); g.DrawLine(pen, 0, 0, p.X, p.Y); pBelaboarazione.Value = 100; this.box.Image = bmp; } // Pulsante simula

devo far far il cliclo per leggere tutta la textbox tbCode.text

ecco qui:
List<PointF> pt = new List<PointF>();
string line = "" + tbCode.Text + "";

string[] coordinate = line.Split(';');
int x = Convert.ToInt32(coordinate[0]);
int y = Convert.ToInt32(coordinate[1]);

PointF p = new PointF(x, y);
pt.Add(p);

Mi dite come fare?.

grazie.

EDIT VOLEVO DIRE CON C#

ciccio_ska Profilo | Newbie

Ciao
Cosa intendi con tutta la Textbox, così già leggi tutto il contenuto : txCode.Text, che è già una stringa dunque niente apici quando lo assegno a line.

Facci sapere

Francesco Scalise
blog: http://www.flash-hacks.com

Anonimo Profilo | Senior Member

si, solo che quando provo ad scrivere 100;0;0;100 mi prende solo i primi due, come mai?,

grazie.

ciccio_ska Profilo | Newbie

>Salve, mi dite come si fa ad fare che legge tutta la textbox
>inserendola in questo codice:
>
>private void Simula_Click(object sender, EventArgs e)
> {
>
> Elabora_.Enabled = true;
> Elabora_.Interval = 10;
>
> pBelaboarazione.Value = 100;
> this.box.Image = null;
>
>Bitmap bmp = new Bitmap(this.box.Width / 2, this.box.Height /
>2);
> Graphics g = Graphics.FromImage(bmp);
> Pen redPen = new Pen(Color.Red, 1 / g.DpiX);
> redPen.Width = 2;
>
> g.PageUnit = GraphicsUnit.Millimeter;
>
> List<PointF> pt = new List<PointF>();
> string line = "" + tbCode.Text + "";
>
> string[] coordinate = line.Split(';');
> int x = Convert.ToInt32(coordinate[0]);
> int y = Convert.ToInt32(coordinate[1]);
>
> PointF p = new PointF(x, y);
> pt.Add(p);
>
> Pen pen = new Pen(Color.Black, 3);
> g.DrawLine(pen, 0, 0, p.X, p.Y);
> pBelaboarazione.Value = 100;
> this.box.Image = bmp;
>
> } // Pulsante simula
>
>devo far far il cliclo per leggere tutta la textbox tbCode.text
>
>ecco qui:
> List<PointF> pt = new List<PointF>();
> string line = "" + tbCode.Text + "";
>
> string[] coordinate = line.Split(';');
> int x = Convert.ToInt32(coordinate[0]);
> int y = Convert.ToInt32(coordinate[1]);
>
> PointF p = new PointF(x, y);
> pt.Add(p);
>
>Mi dite come fare?.
>
>grazie.
>
>EDIT VOLEVO DIRE CON C#


Perchè tu gli dici di farlo :P

int x = Convert.ToInt32(coordinate[0]);
int y = Convert.ToInt32(coordinate[1]);

devi ciclare coordinate e assegnarlo a tanti interi quante sono le stringhe nell'array.

Francesco Scalise
blog: http://www.flash-hacks.com

Anonimo Profilo | Senior Member

è come si fa?,

Sai sto imparando adesso senza fare copia/incolla codici che trovo su internet.

grazie mille.

ciccio_ska Profilo | Newbie

Il ciclo

foreach(string s in coordinate)
{
-> qui ci metti la tua assegnazione a intero con relativa conversione.
}

sei tu a sapere quanti interi e/o stringhe puoi aspettarti :)

Ciao

Francesco Scalise
blog: http://www.flash-hacks.com

Anonimo Profilo | Senior Member

percaso cosi:
foreach(string s in coordinate)
{
int x = Convert.ToInt32(coordinate[0]);
int y = Convert.ToInt32(coordinate[1]);
}

Mi dici se va bene e la s e in che servono?.

grazie.

ciccio_ska Profilo | Newbie

>percaso cosi:
>foreach(string s in coordinate)
>{
> int x = Convert.ToInt32(coordinate[0]);
> int y = Convert.ToInt32(coordinate[1]);
>}
>
>Mi dici se va bene e la s e in che servono?.
>
>grazie.

Allora :
Se ho ben capito tu hai questa stringa di input "100;50;100;25" giusto ?
Detto questo se stai definendo la coordinata di un punto ti servono solo 2 valori(x,y)-> dunque (100,50) giusto ?
Allora 100 e 25 a cosa ti servono ?
Se non mi esponi quello che vuoi fare staremo qui per ore ....



Francesco Scalise
blog: http://www.flash-hacks.com

Anonimo Profilo | Senior Member

devo fare il modo che devo seguire la linea da me creata e la deve disegnare, passo per passo dalle coordinate che gli do io nella textbox.

Grazie.

AntCiar Profilo | Expert

Ciao. Puoi fare anche in questo modo:

string[] valori = txCode.Text.Split(";".ToCharArray());

poi puoi estrarti semplicemente i tuoi numeri dall'array 'valori' dicendo la posizione

int x1 = Convert.toInt32(valori [0]); int y1 = Convert.toInt32(valori [1]); int x2 = Convert.toInt32(valori [2]); int x3 = Convert.toInt32(valori [3]);

Potresti fare anche una cosa più semplice del tipo

Point p1, p2;

p1 = new Point(Convert.toInt32(valori [0]), Convert.toInt32(valori [1])); p2 = new Point(Convert.toInt32(valori [2]), Convert.toInt32(valori [3])); g.DrawLine(Pens.Black, p1,p2);

Ciao
Cristian Barca

Anonimo Profilo | Senior Member

non capisco ti allego tutto il codice fine ora che ho scritto:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Mi protesti aiutarmi... ,
sei sicuro con il codice che hai scritto nell'ultimo post mi legge tutte le coordinate e dove lo devo inserire?

grazie.

AntCiar Profilo | Expert

Ciao. Faccio le correzioni al solo nell'evento click. Tutto il resto lascialo tale e quale. Ho tolto qualche pezzo che non serviva. Da come ho capito io tu nelle textbox metti sempre una coppia di punti espressi con le coordinate (x1;y1;x2;y2). Il pezzo di codice che segue funziona solo per questo tipo di inserimento. Se poi metti più coppie di coordinate nella textbox ti legge solo i primi due punti.

PS. Il codice l'ho cambiato direttamente nel forum quindi se ti da qualche errore di sintassi corregilo tu.

Ciao


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Cristian Barca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5