Guide e Tutorials:indexed | ||||||||||||
Il metodo Drag, la proprietà DragIcon e la proprietà DragMode (Tutorial completo) Attraverso il metodo Drag è possibile trascinare rimanendo sull'area della form, un qualsiasi controllo ad eccezione di quelli definiti appunto 'non trascinabili' ossia i controlli Line, Menu, Shape, Timer e CommonDialog. Drag, se naturalmente supportato dal controllo, permette inoltre di impostare una determinata azione sempre in riferimento al trascinamento. Come si vedrà infatti nella tabella che viene di seguito le tre azioni fondamentali che possono essere compiute sono: inizio del trascinamento, cancellazione ed annullamento dell'operazione di trascinamento e termine del trascinamento. Con l'interazione in diversi momenti di queste tre azioni si possono ricreare certamente gli effetti desiderati. La sintassi con la quale fare riferimento al metodo è la seguente:
dove naturalmente Oggetto indica il particolare controllo al quale applicare l'operazione di trascinamento. Se ad esempio si intende trascinare un controllo PictureBox sulla form, basterà indicare come oggetto Picture1. Azione identifica invece una delle tre possibilità appena esposte. Ridefinendole con un maggiore grado di dettaglio, possiamo notare che:
Ancora qualche dettaglio prima di vedere un esempio. Innanzitutto L'utilizzo del metodo Drag per il controllo di un'operazione di trascinamento è necessario soltanto quando la proprietà DragMode dell'oggetto è impostata su 0 cioè vbManual che corrisponde al controllo manuale del trascinamento. La proprietà DragMode può essere impostata al momento dello sviluppo attraverso la finestra Proprietà del controllo a cui si applica il metodo Drag oppure in fase di esecuzione e quindi da codice, impostando:
Inoltre, nel caso si voglia modificare il puntatore durante la pendenza della fase di trascinamento si può utilizzare la proprietà DragIcon, se supportata dall'oggetto. Si vedrà meglio anche questa possibilità all'interno dell'esempio. Per quanto riguarda invece le modalità di esecuzione del codice, bisogna necessariamente tenere conto al momento dello sviluppo che il metodo Drag funziona in genere in modalità sincrona, nel caso
ovvero le istruzioni successive vengono eseguite solo al termine del completamento dell'operazione di trascinamento. Se si utilizza però un metodo di trascinamento manuale (vbManual) il metodo funzionerà in modalità asincrona, permettendo quindi di compiere ulteriori operazioni separate anche al momento del trascinamento. Questo rappresenta la grande differenza tra le due modalità di trascinamento previste. Ecco per concludere l'esempio. Si vuole che un controllo PictureBox possa essere spostato manualmente alla pressione di un tasto del mouse su di esso e che con il rilascio di detto tasto il trascinamento s'interrompa. La PictureBox si sposterà poi in base alla posizione di rilascio del mouse. Bisogna tenere conto però che la posizione non potrà essere esatta al pixel in quanto sarebbe necessario un ulteriore calcolo della posizione in cui si è cliccato sul controllo, cosa che va al di là di questo articolo. Alla pressione del tasto del mouse su Picture1 comincerà dunque il trascinamento la cui modalità è impostata su vbManual:
Controlliamo quindi la posizione del puntatore sulla form una volta terminata l'operazione e spostiamo il controllo Picture1 in base alle coordinate X ed Y:
|
Archivio:ndexed | ||||
Lezioni | Commenta questa lezione | Invia la tua guida | Avviso per le nuove lezioni | Proponi un argomento |
Visual Basic Italia© copyright 2000 - tutti i diritti riservati |