2012-11-19 17 views
6

Quando compilo il mio modulo sulla mia macchina sembra a posto, ma quando è compilato su un computer diverso, la dimensione del modulo stesso è errata. Le etichette vengono spostate e le cose non sono più allineate correttamente.Form sembra diverso su un altro computer

Come garantire che tutto sembrerà lo stesso su qualsiasi computer?

Ho provato a impostare AutoScaleMode su nessuno, e ha aiutato un po 'ma poi le etichette erano parzialmente sotto le caselle di testo corrispondenti.

+0

Come vengono dimensionati e posizionati i controlli? Non ho mai visto le mie forme finite per essere criptate su risoluzioni diverse. – Alex

+0

Le impostazioni DPI sulle due macchine sono probabilmente diverse. –

+0

Come hai raggruppato i tuoi controlli? Stai usando controlli di layout? Stai usando le ancore? –

risposta

5

Il carattere o il DPI sono diversi.

E non ho mai trovato un modo per dire AutoScaleMode = (most appropriate of font or dpi).

Ma prova AutoScaleMode = DPI e AutoScaleMode = Font. Uno di essi dovrebbe funzionare.

Non abbiamo mai trovato un modo affidabile per gestire questo. Il nostro posto di lavoro è stato utilizzato per applicare il DPI su tutte le workstation, ma da allora è cambiato. Il modo migliore per gestirlo è assicurarsi di disporre i controlli con FlowLayoutPanel o TableLayoutPanel anziché il posizionamento assoluto dei controlli.

+0

Se si accede a Pannello di controllo \ Aspetto e personalizzazione \ Display, è possibile scegliere tra 100%, 125% e 150%. Presumo che questo cambi il DPI. Come sarebbe diverso il carattere su diverse macchine? – NMunro

+0

Hai ragione. Questo è il DPI; Microsoft lo dice solo in un modo strano secondo me. Puoi cambiare i caratteri di sistema usati nelle finestre di dialogo ecc. Come [questo] (http://www.sevenforums.com/tutorials/1175-fonts-change.html) – hometoast

+0

C'è un modo per dire se hanno cambiato DPI o font? La mia soluzione preferita sarebbe una finestra di messaggio che dice loro di smettere di fregare con le cose. LOL – NMunro

0

Avevo questo problema di recente e risulta che la compilazione al 125% o il settaggio medio rende il binario immune ai cambiamenti al 100 o al 150 percento. È comunque necessario impostare AutoScaleMode su None.

0

Anche se l'argomento è finito, i miei due centesimi poiché avevo di fronte lo stesso problema, il modulo aveva una dimensione diversa (nel mio caso più grande) ma i controlli dove lo stesso quando riparato. L'ho risolto solo dando alla forma originale dimensioni più piccole del controllo e permettendole di crescere automaticamente.

Ho applicato anche le linee guida di questo post (How to write WinForms code that auto-scales to system font and dpi settings?) ma non ha risolto il mio problema.

Problemi correlati