Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα παιδια!

Συγγραφω εναν κωδικα για τη διπλωματικη μου σε Visual Basic.
Μεχρι στιγμης δουλευα σε οθονη αναλυσης 1920x1080 , αλλα τωρα πρεπει να συνεχισω σε λαπτοπ με αναλυση 1366x768.

Το προβλημα ειναι οτι μολις το φορτωσα στο λαπτοπ και εκανα debugging, οι φορμες χαλασαν και τα controls πεσανε το ενα πανω στο αλλο ή δεν φαινονταν καν...

Δοκιμασα καποιες προτασεις που βρηκα στο net (πχ. Me.WindowState = FormWindowState.Maximized ή AutoScaleMode = Windows.Forms.AutoScaleMode.Dpi) αλλα χωρις αποτελεσμα.

Ειμαι πρωταρης στον προγραμματισμο, οποτε θα ηθελα τα φωτα σας!

Ευχαριστω για το χρονο σας

Δημοσ.

NikosKallithea μπορεις να γινεις λιγο πιο συγκεκριμενος?

 

Η φορμα δεν ξεκιναει απο full screen. Εχει size 1000x500 περιπου, που σημαινει οτι θεωρητικα θα επρεπε να χωραει και σε αναλυση 1366x768 ( ή κανω λαθος?).

 

Δηλαδη θα πρεπει να παιξω με resizing για καθε control στο Form_Load?

Δεν υπαρχει καποια επιλογη μετατροπης με ενα καθολικο ας πουμε συντελεστη? (Ρωταω διοτι εχω πολλα controls στη φορμα και πολλα απο αυτα δημιουργουνται δυναμικα απο το χρηστη)

Δημοσ.

Οχι δεν υπάρχει κατι δυναμικό, πρπει να πεις πχ το κουμπί, θα πας σε αυτο το υψος και σε αυτο το πλατος, ειναι αρκετα κοπιαστικό, μελέτησε κάποιον αλλο τροπο ωστε να μην εξαρτάσαι απο το size της οθόνης

Δημοσ.

Φυσικά και υπάρχει λύση, αλλά όχι με τη λογική του "μεγαλώνει το παράθυρο κουνιούνται (ή αλλάζουν μέγεθος) τα controls". Το ότι δημιουργούνται από το χρήστη δεν ξέρω αν σε επηρρεάζει -- είτε ο χρήστης θέλει πλήρη έλεγχο οπότε στο resize είναι λογικό να μη κάνεις τίποτα, είτε δε θέλει πλήρη έλεγχο οπότε μπορείς να ικανοποιήσεις σχετικά εύκολα όλα τα βασικά σενάρια layout.

 

Αυτό που πρέπει να κάνεις είναι να βάλεις στη φόρμα σου σωστά panels και Dock/Anchor properties στα διάφορα controls. Υπάρχουν πολλές δυνατότητες και θέλει λίγο να πάρεις το κολάι πρώτα, οπότε google και πειραματίσου λίγο. Με ένα πρόχειρο google βρήκα αυτό το οποίο δε φαίνεται κακό. Επίσης αν ενδιαφέρεσαι να ψάξεις για βιβλίο, το Programming Windows Forms του Petzold έχει ολόκληρο κεφάλαιο όπου πραγματεύεται τις τεχνικές layout.

  • Like 1
Δημοσ.

Η φορμα δεν ξεκιναει απο full screen. Εχει size 1000x500 περιπου, που σημαινει οτι θεωρητικα θα επρεπε να χωραει και σε αναλυση 1366x768 ( ή κανω λαθος?).

 

Εχω project με μεγεθος φορμας 1024x760 και το δουλευω σε οθονη 22" με αναλυση 1680x1050.

Οταν φορτωνω το ιδιο project σε laptop 15.4" 1280x800 εμφανιζονται ολα κανονικα χωρις χρηση Dock/Anchor.

Εχω ομως απενεργοποιησει τη δυνατοτητα να αλλαζεις μεγεθος ή να μεγιστοποιεις την φορμα.

Ισως να παιζει κατι με τα dpi για να πεφτει το ενα control πανω στο αλλο. Δοκιμασε να ορισεις την ιδιοτητα MaximizeBox σε false και ορισε στις ιδιοτητες MaximumSize & MinimumSize σε 1000x500.

  • Like 1
Δημοσ.

Παιδια ευχαριστω ολους για τις απαντησεις.

 

Εκανα λαθος, η φορμα ειχε αρχικο size 1700x800 στην οθονη 1080p, οποτε στο λαπτοπ εμφανιζεται με size 1000x500  αυτοματα με το AutoScaleMode ( οπως γινεται και στα controls που εχω σχεδιασει εξ αρχης πανω σε αυτην).

 

Ωστοσο, στα dynamic controls που εχω στον κωδικα και εμφανιζονται στη φορμα αναλογα με τις επιλογες του χρηστη, δεν γινεται αυτοματο Scaling και εκει εγκειται το προβλημα απο οτι καταλαβα.

 

Λογικα λοιπον θα πρεπει να ορισω εκ νεου τα Size & Location properties απο καθε control συναρτησει ενος συντελεστη μεταβολης της αναλυσης οθονης?

Η υπαρχει κανενας πιο εξυπνος και γρηγορος τροπος? (ευχομαι... :fear: )  

Δημοσ.

Ακριβως albNik.

 

Σε αυτα εμφανιζεται το προβλημα, γιατι δινω τα properties τους μεσα απο τον κωδικα και ετσι δεν αλλαζουν αυτοματα

Δημοσ. (επεξεργασμένο)

Αν το αρχικο size ειναι 1700x800 και η φορμα ειναι γεματη controls τοτε λογικο ειναι να υπαρχει προβλημα οταν μικραινει η φορμα. Εφοσον λες οτι στο λαπτοπ εμφανιζεται με size 1000x500  αυτοματα με το AutoScaleMode τοτε προφανως θα εκτελειται αυτοματα το συμβαν Form_Resize. Οποτε θα χρειαστει στο Form_Resize να οριζεις με κωδικα το μεγεθος και τη θεση του καθε control στη φορμα.  Καθε φορα που θα αλλαζει μεγεθος η φορμα θα εκτελειται ο κωδικας μεσα στο Form_Resize για την προσαρμογη των controls.

Επεξ/σία από geo1st487
Δημοσ.

Μπορεις επίσης να τα φτιαξεις στον designer και να τα κανεις Visible -true/false κατα το runtime

ή να τα εχεις σε ξεχωριστό container (π.χ panel) που θα εμφανιζεις/αποκρυπτεις.   

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...