Stampa continua con pulsante di stop

lunedì 19 novembre 2012 - 17.05
Tag Elenco Tags  C#  |  Windows 7  |  Visual Studio Express

marfra Profilo | Newbie

Salve, ho un software che stampa numero su un foglio precompilato ogni qualvolta premo stampa mi aggiorna questo numero sommando uno al precedente.

Vorrei fare in modo di premere stampa una sola volta e inserire un pulsante di stop per farmare la stampa quando voglio.

Qualcuno può aiutarmi

Grazie.

ridaria Profilo | Expert

.... vuoi interrompere una stampa in corso?


Riccardo D'Aria

marfra Profilo | Newbie

Ti spiego, ho fatto un software 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?

ridaria Profilo | Expert

UNa avolta avviata una procedura (un blocco di codice/routine) non puoi arrestarlo.

Quello che puoi fare è avviare un loop magari 10 volte e ad ogni giro, con un msgbox chiedi all'utente se stampare o meno.

Ciao



Riccardo D'Aria

Vinsent Profilo | Senior Member

>UNa avolta avviata una procedura (un blocco di codice/routine)
>non puoi arrestarlo.
In VB si può usare 'Exit For', 'Exit Sub' o 'Return' con un IF su una variabile, ovviamente il codice va eseguito su un thread separato per poter modificare la variabile, non so l' equivalente in C# delle istruzioni sopra...comunque già usando un thread o un backgroundworker si può metterlo in pausa, riavviarlo o arrestarlo del tutto.

>Quello che puoi fare è avviare un loop magari 10 volte e ad ogni
>giro, con un msgbox chiedi all'utente se stampare o meno.
Questa mi sembra la soluzione più semplice e pratica, se il programma lancia tipo 10 stampe in un paio di secondi ai voglia a cliccare per interrompere alla stampa giusta....

ciao!

ridaria Profilo | Expert


>In VB si può usare 'Exit For', 'Exit Sub' o 'Return' con un IF
EXIT FOR o EXIT SUb sono escamotage da programmazzione terra terra.

GESTISCI un tread per intero, se una routine la devi saltare a metà scrivi metà codice alora!



>>Quello che puoi fare è avviare un loop magari 10 volte e ad ogni
>>giro, con un msgbox chiedi all'utente se stampare o meno.
>Questa mi sembra la soluzione più semplice e pratica, se il programma
>lancia tipo 10 stampe in un paio di secondi ai voglia a cliccare
>per interrompere alla stampa giusta....

non è ciò che hai capito: gira dieci volte per dieci stampe! Ad ogni giro chiede se stampare! che è deiverso da ciò che hai inteso tu!

CIAO

Riccardo D'Aria

ridaria Profilo | Expert

>Vorrei fare in modo di premere stampa una sola volta e inserire un pulsante di stop per farmare la >stampa quando voglio.

>In VB si può usare 'Exit For', 'Exit Sub' o 'Return' con un IF
>su una variabile, ovviamente il codice va eseguito su un thread
>separato per poter modificare la variabile, non so l' equivalente
>in C# delle istruzioni sopra...comunque già usando un thread
>o un backgroundworker si può metterlo in pausa, riavviarlo o
>arrestarlo del tutto.

CON UN IF SU UNA VARIABILE DI TIPO BUBLIC ESATTO E QUANDO SONO PARTITE LE 10 STAMPE TI VOGLIO VEDERE A BECCARE LO STOP AL MOMENTO GIUSTO

>

Riccardo D'Aria

Vinsent Profilo | Senior Member

>>In VB si può usare 'Exit For', 'Exit Sub' o 'Return' con un IF
>EXIT FOR o EXIT SUb sono escamotage da programmazzione terra
>terra.
In che senso escamotage "terra terra"...se si vuole interrompere un ciclo FOR/NEXT quale sarebbe il metodo "buono"?

>GESTISCI un tread per intero, se una routine la devi saltare
>a metà scrivi metà codice alora!
Non ti seguo...

>>>Quello che puoi fare è avviare un loop magari 10 volte e ad ogni
>>>giro, con un msgbox chiedi all'utente se stampare o meno.
>>Questa mi sembra la soluzione più semplice e pratica, se il programma
>>lancia tipo 10 stampe in un paio di secondi ai voglia a cliccare
>>per interrompere alla stampa giusta....
>
>non è ciò che hai capito: gira dieci volte per dieci stampe!
>Ad ogni giro chiede se stampare! che è deiverso da ciò che hai
>inteso tu!
...effettivamente avevo capito che volesse interrompere una singola stampa tipo da 10 pagine e fermarla diciamo alla quinta...

ridaria Profilo | Expert

>>>In VB si può usare 'Exit For', 'Exit Sub' o 'Return' con un IF
>>EXIT FOR o EXIT SUb sono escamotage da programmazzione terra
>>terra.
>In che senso escamotage "terra terra"...se si vuole interrompere
>un ciclo FOR/NEXT quale sarebbe il metodo "buono"?

OK certo un for next ok, ma exit sub le vedo davvero poco ortodosse.

>>GESTISCI un tread per intero, se una routine la devi saltare
>>a metà scrivi metà codice alora!
>Non ti seguo...
>
>>>>Quello che puoi fare è avviare un loop magari 10 volte e ad ogni
>>>>giro, con un msgbox chiedi all'utente se stampare o meno.
>>>Questa mi sembra la soluzione più semplice e pratica, se il programma
>>>lancia tipo 10 stampe in un paio di secondi ai voglia a cliccare
>>>per interrompere alla stampa giusta....
>>

>...effettivamente avevo capito che volesse interrompere una singola
>stampa tipo da 10 pagine e fermarla diciamo alla quinta...
e se vuole fare questo mi sembra un pò molto complesso. a meno che non sappia a priori che voglia rermarsi alla quinta pagina.
cmq non è molto chiaro ciò che vuo fare.

Ciao


Riccardo D'Aria

marfra Profilo | Newbie

Ho risolto, grazie comunque ad entrambi.
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