2010-08-24 14 views
5

Ho un problema strano che ho bisogno di capire come risolvere,controlli .NET cambiare dimensioni tra computer

Ho trascorso l'ultimo paio di settimane di lavoro su un progetto per il lavoro sul mio portatile, ma quando ho aprire il programma su uno dei pezzi di lavoro un sacco di controlli sono la dimensione sbagliata e più sul giro, ecc,

le differenze tra le macchine è questo:

portatile:

Windows 7 Pro; Display - 1920 * 1040; Visiual Studio 2008; .NET Framework 3.5

lavoro Desktop:

windows xp pro; Display : 1024 * 768; studio visivo 2008; .net framework 3.5;

per descrivere meglio il problema, ho un pannello che ho impostato per essere largo 300 px, che ha un'etichetta interna con il giorno e il giorno nel formato mm-GG-aaaa, utilizzando il carattere arial e di dimensione 8.

Sul laptop tutto si adatta perfettamente, ma sul desktop il pannello sembra più piccolo e l'etichetta visualizza solo metà del testo.

Questo è solo uno dei tanti problemi, un altro è con il colore system.control sembra essere un colore completamente diverso tra i sistemi (althoug immagino che per essere un win7 vs problema xp)

Che cosa posso fare per Aggiustalo? è un problema con la versione di Windows? (Ho xp su una macchina vmware sul mio portatile in modo da poter codificare e progettare in questo)

è un problema di visualizzazione? - Questo è un grosso problema per me visto che ho solo 1 laptop e penso che questo problema potrebbe aver causato una perdita di voti sul mio recente incarico per Uni (ho codificato sul laptop e non ho mai aperto su un desktop fino ad oggi - quindi non avevo idea di questo problema)

EDIT: Ho trovato una soluzione di questo tipo per il mio particolare problema, ho scoperto che il mio laptop stava lavorando al 125% sulle impostazioni dpi per ipovedenti (non so come ..) quindi l'ho resettato torna al 100% o 96 dpi Che ha risolto i miei problemi, e dopo aver parlato con un paio di altri sviluppatori che conosco, dicono che tendono a progettare per 96 dpi lasciando un po 'di spazio bianco attorno al testo per essere sicuri. ma poi non tendono ad usare molto C# e principalmente codificano tutto in C++ usando il framework QT.

+2

Questo è un problema comune con WinForms ed è correlato al DPI di ciascun display. Se usi google per "winforms DPI", otterrai molti risultati. –

risposta

11

La scheda video della workstation ha un'impostazione di punti per pollice diversa. Il modulo si ridimensiona automaticamente per adattarlo.

Questo avverrà anche quando spedite il vostro prodotto e verrà eseguito sulla macchina del cliente. La modifica della proprietà AutoScaleMode del modulo non è una correzione, che produrrà solo testo ritagliato nei controlli. Assicurati che il design del modulo sia resistente alle modifiche del layout. Dock, Anchor, TableLayoutPanel, FlowLayoutPanel, l'evento Resize per casi difficili.Assicurati che i controlli ereditino la proprietà Font del loro contenitore (non in grassetto nella finestra Proprietà)

2

Assicurati di poter ridimensionare il pannello in Visual Studio con tutti i controlli al suo interno riposizionati e ridimensionati correttamente. È possibile utilizzare gli ancoraggi per ottenere questo risultato, o forse si dovrebbe usare un controllo TableLayoutPanel invece di un normale Panel.

Problemi correlati