Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Problema con C# e disegno dei Panels
giovedì 22 marzo 2012 - 08.51
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
WinterMute
Profilo
| Newbie
3
messaggi | Data Invio:
gio 22 mar 2012 - 08:51
Allora: sto creando un'applicazione grafica. Ho un panel dove creerò il mio disegno, all'interno di un tabControl
Ho tre funzioni: una che si occupa di creare una griglia nel panel, un'altra che ci disegna dentro gli oggetti, una terza che traccia un "mirino" della posizione del mouse in caso di MouseMove
Problema: quando creo il form e carico il panel, questo è del tutto inattivo (non ci viene disegnato nulla) fino a che non ci passo sopra col mouse. Questo è inaccettabile.
Ho provato a chiamare dinamicamente il mouseMove, a forzare il panel a mostrarsi ma è tutto inutile. Un paio di esperimenti (il classico messagebox) m hanno mostrato che nessun intervento sul panel avviene a meno che io non lo attivi manualmente, nonostante io chiami esplicitamente le funzioni che avvengono su di lui.
Come posso fare?
Da programmatore di PLC ero abituato al fatto che il flusso del programma fosse un dogma e non qualcosa che Windows si permette di modificare a piacimento...
u235
Profilo
| Junior Member
125
messaggi | Data Invio:
gio 22 mar 2012 - 09:30
>Allora: sto creando un'applicazione grafica. Ho un panel dove
>creerò il mio disegno, all'interno di un tabControl
>Ho tre funzioni: una che si occupa di creare una griglia nel
>panel, un'altra che ci disegna dentro gli oggetti, una terza
>che traccia un "mirino" della posizione del mouse in caso di
>MouseMove
>
>Problema: quando creo il form e carico il panel, questo è del
>tutto inattivo (non ci viene disegnato nulla) fino a che non
>ci passo sopra col mouse. Questo è inaccettabile.
>Ho provato a chiamare dinamicamente il mouseMove, a forzare il
>panel a mostrarsi ma è tutto inutile. Un paio di esperimenti
>(il classico messagebox) m hanno mostrato che nessun intervento
>sul panel avviene a meno che io non lo attivi manualmente, nonostante
>io chiami esplicitamente le funzioni che avvengono su di lui.
>
>Come posso fare?
>
>Da programmatore di PLC ero abituato al fatto che il flusso del
>programma fosse un dogma e non qualcosa che Windows si permette
>di modificare a piacimento...
Accidenti!! ancora una vittima dell'omino dispettoso della Microsoft
Scherzo!
Prova a postare il codice, se no non è possibile cercare di darti una mano.
WinterMute
Profilo
| Newbie
3
messaggi | Data Invio:
gio 22 mar 2012 - 11:29
Ti ringrazio, ho risolto con un trucco: ho creato un timer che fa le operazioni che dovrebbero essere fatte dall'evento OnLoad.
OnLoad, per motivi che assolutamente mi sfuggono, viene eseguito solo in parte. Il timer viene eseguito, poi lo disabilito una volta che ha compiuto il suo dovere.
C# mi sembra un po' un cannone per mosche: anche per le cose più semplici richiede un lavoro ingiustificato... Vabbeh
u235
Profilo
| Junior Member
125
messaggi | Data Invio:
gio 22 mar 2012 - 11:44
>Ti ringrazio, ho risolto con un trucco: ho creato un timer che
>fa le operazioni che dovrebbero essere fatte dall'evento OnLoad.
>OnLoad, per motivi che assolutamente mi sfuggono, viene eseguito
>solo in parte. Il timer viene eseguito, poi lo disabilito una
>volta che ha compiuto il suo dovere.
>
>C# mi sembra un po' un cannone per mosche: anche per le cose
>più semplici richiede un lavoro ingiustificato... Vabbeh
:) sono contento che hai risolto, ma non credo che lo abbia fatto nel migliore dei modi.
Senza offesa si intenda, ma io non ho mai avuto bisogno di un timer per disegnare in un controllo, in nessuna condizione d'uso se non per specifici motivi logici che non hanno nulla a che vedere con problemi, quindi credo sia possibile che stia sbagliando qualcosa tu e non credo che sia c# a richiede un lavoro ingiustificato (questo).
Chiedevo il tuo codice perchè se avessi davvero bisogno di un timer in maniera ingiustificata, imparerei qualcosa (di brutto) in più del c#.
ciao.
Torna su
Stanze Forum
Elenco Threads
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 !