E.Graphic.DrawString errore

venerdì 16 novembre 2012 - 13.37
Tag Elenco Tags  C#  |  Windows 7  |  Visual Studio Express

marfra Profilo | Newbie

Salve, dovrei aver fatto tutto correttamente, ma

e.Graphic.DrawString ( string labell.Text ,labell.Font .. ecc)

mi dice che string non è un valore valido nell'espression

Linguaggio C# - Visual C# 2010 Express

Grazie

AntCiar Profilo | Expert

ciao.

labell.text restituisce già una stringa quindi non è necessario forzarne il cast.

poi se proprio ce lo vuoi mettere lo stesso....


e.Graphic.DrawString ( (string)labell.Text ,labell.Font .. ecc)
Cristian Barca

marfra Profilo | Newbie

e.Graphic.DrawString ( labell.Text ,labell.Font .. ecc)

avevo già provato così, mi dice nessun overload del metodo DrawString accetta argomenti '1'

AntCiar Profilo | Expert

allora:

drawString della classe Graphics accetta minimo 4 parametri:

g.DrawString(labell.text, labell.Font, Brushes.Black, new Point(x, y));

x,y è la posizione in relazione all'oggetto su cui si basa il Graphics di dove vuoi "disegnare" la stringa.

il messaggio che hai postato tu è perchè ce ne passavi uno solo...
Cristian Barca

marfra Profilo | Newbie

Infatti, funziona ... grazie mille.

Sono alquanto impedito.



Posso chiederti ancora una cosa..così finisco questo e mi metto subito a lavorare sull'altro progetto da consegnare?

AntCiar Profilo | Expert

chiedi
Cristian Barca

marfra Profilo | Newbie

Allora:

il foglio sarà un A5 quindi ho usato PageSetting
L'orientamento è verticale ed ho usato Landscape:false
il testo del labell che mi deve stampare, essendo il foglio in verticale la scritta deve venire in verticale non in orizzontale
Come cambio questa impostazione?!?!

AntCiar Profilo | Expert

prima del DrawString

StringFormat strf = new StringFormat();
strf.FormatFlags = StringFormatFlags.DirectionVertical;

poi nella chiamata a DrawString dopo che passi la posizione metti una virgola e passa l'oggetto strf
Cristian Barca

marfra Profilo | Newbie

Perfetto, di nuovo grazie.


marfra Profilo | Newbie

Scusami, posso disturbarti ancora per una cosa???

AntCiar Profilo | Expert

ciao.

chiedi direttamente. siamo in un forum. Tu chiedi poi se ti sappiamo rispondere, risponderemo...
Cristian Barca

marfra Profilo | Newbie

ho chiesto dato che avevo già segnato il post come chiuso.

Ti spiego,il software di cui ti ho chiesto nel post, in cui inserisco un numero in una textbox, con un pulsante lo assegno ad un label.
il contenuto del label ogni qualvolta premo stampa viene stampato in una posizione precisa del foglio e in più si incrementa di 1.

Invece di dover premere stampa ogni volta, è possibile gestire le stampe multiple con un bottone di start e stop.
Nel senso .. posso far iniziare il ciclo di stampa e decidere quando fermarlo facendo fermare così l'incremento del contenuto del label.

Il problema è che se invio 10 stampe le invia alla stampante tutte insieme, invece vorrei fare in modo di premere stampa e avere l'invio delle stampe una alla volta in modo tale da poterle fermare con un pulsante di stop in qualsiasi momento.

Se vuoi ti posto il codice?

AntCiar Profilo | Expert

no non serve il codice.

Puoi fare in questo modo:

nella tua form fuori da ogni metodo dichiarati una variabile di tipo booleana:

bool _stopPrint = false;


Nella tua form aggiungi un bottone per lo stop e nell'evento click ci metti:

_stopPrint = true;

poi sul click del tuo bottone di stampa fai questo:

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





Praticamente fai in questo modo:

quando avvii la stampa metti la tua variabile booleana a false in modo che il cliclo while parte e rimane attivo fino a che la variabile booleana resta a false.
Alla prima iterazione ti invia in stampa i dati poi dopo incrementa il valore ed aspetta 2 secondi prima di ripetere il ciclo (ho messo due secondi per dare il tempo materiale di poter premere il bottone di Stop. Poi se vui puoi cambiare il valore agendo su Thread.Sleep(2000) in cui il valore è in millisecondi)

Quando premi il bottone Stop, la variabile booleana viene messa a true e il ciclo while si ferma.
Cristian Barca

marfra Profilo | Newbie

Perfetto Grazie Mille!
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