Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Cornici di selezione/modifica e finestre proprietà
Forum - C# / VB.NET - [C#] Cornici di selezione/modifica e finestre proprietà

Avatar
pano1974 (Normal User)
Newbie


Messaggi: 3
Iscritto: 29/09/2006

Segnala al moderatore
Postato alle 12:11
Mercoledì, 09/03/2011
Ciao a tutti.
Sto provando a fare un programma per spostare e modificare dei controlli (button,textbox ecc...)a runtime.
Riesco (o per lo meno credo)di aver risolto la maggior parte dei problemi.
Unico problema che non riesco a risolvere è quello degli adorners (credo si chiamino cosi) degli oggetti.
Sto parlando delle cornici che compaiono (per esempio in visual studio ma anche in un qualsiasi programma di grafica) quando si seleziona un oggetto.
Su msdn si trova un sacco di codice per i WPF ma il mio programma è un WinForm.
Qualcuno sa dirmi se esistono già questo tipo di controlli o se c'è un modo per visualizzarli o una tecnica per costruirli?

Faccio un esempio per far capire il problema:
in un panel del mio form ci sono dei controlli (button,label,textbox) e devo ridimensionarli,o spostrali dopo averli selezionati.
Quando uno di questi oggetti viene selezionato vorrei che compaia una "cornice" con i soliti 8 punti di ridimensionamento.
Quello che mi manca sono giusto queste cornici.

P.S.:
visto che ci sono:qualcuno sa come si chiama il controllo tipo la "finestra delle proprietà" o "esplora soluzione" di visual studio?
grazie.

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1838
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 13:09
Mercoledì, 09/03/2011
per fare ciò si, devi crearti un controllo personalizzato,
ed interagire all'evento on_paint del controllo per disegnare i rettangolini che intendi

ovviamente sempre relative all'oggetto stesso,

per quanto riguarda il ridimensionamento ti dirò non ho mai provato a fare una cosa del genere, e non credo che sia abbastanza semplice nel realizzarlo,

ma puoi tenere in memoria delle cordinate del mouse,
ed agire se il mouse si trova nell'area del rettangolo del ridimensionamento ed all'evento click o MouseDown magari interagendo via winapi,
imposti un bool che allo spostamento del mouse, (sempre relativo ad esso)
muovendolo il pannello si ridimensiona,

questo trick mi ha incuriosito molto magari quando ho un pò di tempo libero ci provo e ti faccio sapere,

ma non dovrebbe essere tanto complicato nel farlo.


PM Quote
Avatar
pano1974 (Normal User)
Newbie


Messaggi: 3
Iscritto: 29/09/2006

Segnala al moderatore
Postato alle 13:50
Mercoledì, 09/03/2011
Grazie per la risposta.

Per il ridimensionamento di un controllo a runtime non credo sia complicato.
Quello che mi avrebbe aiutato a scrivere meno codice erano proprio questi adorners o gliph.
In WPF è semplice farlo da quel che ho visto da alcuni esempi (io non conosco WPF) e pensavo che le medesime cose si potessero fare anche in winform.

vabè...vediamo se qualcun'altro risponde intanto cerco info sul web.

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1838
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 14:31
Mercoledì, 09/03/2011


Il modo che ti ho scritto invece e il classico,
nel senso che come visualstudio per fare ciò ce intendi fare,
devi avere a disposizione un area di lavoro e quindi tenere sotto controllo costantemente la posizione del muose l'offset dei controlli e della loro posizione,

cmq puoi benissimamente usare controlli WPF in applicazioni winform,


PM Quote