Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

SIP Overlapping

Îåêßíçóå áðü ôï ìÝëïò emasmind. Τελευταία δημοσίευση από το μέλος emasmind στις 13-01-2009, 13:29. Υπάρχουν 0 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-01-2009, 13:29 47600

    SIP Overlapping

    Καλησπέρα σε όλους,

    τελευταία με απασχόλησε το βασικό πρόβλημα που κυριαρχεί στα mobile, το θέμα του χώρου της οθόνης που έχει ο χρήστης στη διάθεσή του κατά την εκτέλεση μίας εργασίας.
    Φυσικά, αυτός ο χώρος (VisibleDesktop)  μικραίνει όταν ενεργοποιείται το εικονικό πληκτρολόγιο (SIP-->Software-based Input Panel).
    Οι περισσότεροι θα γνωρίζετε (δε βάζω τον εαυτό μου μέσα καθώς 'νέος' στα mobile) ότι θέτοντας την ιδιότητα της φόρμας (ή panel) AutoScroll σε True, βοηθάει λίγο την κατάσταση αλλά δεν κάνει αυτό που θέλει ο χρήστης, στην περίπτωση εισαγωγής δεδομένων σε φόρμα με πολλά πεδία, να μεταφέρονται τα πεδία προς τα επάνω, αφήνοντας τελευταίο αυτό το οποίο θέλει  να επεξεργαστεί.

    Με λίγο 'googling' αρχικά βρήκα αυτό και αφού το δοκίμασα, αρχικά νόμιζα ότι έλυνε το πρόβλημα, αλλά στη συνέχεια διαπίστωσα (χρησιμοποίησα ως datasource τον πίνακα Employees της Nortwind) ότι όταν ο χρήστης βρίσκεται στο τελευταίο πεδίο (Reports To) και ενεργοποιήσει το SIP δεν μεταφέρεται στο συγκεκριμένο πεδίο στο VisibleDesktop.

    Συνέχισα το 'googling' και βρήκα στη συνέχεια αυτό, το οποίο φαινόταν καλό (αλλά όχι αρκετά) και το οποίο ήμουν έτοιμος να ακολουθήσω. Χρησιμοποιώντας την ίδια φόρμα, κατέληξα σε χειρότερα αποτελέσματα από το προηγούμενο έλεγχο.

    Μετά από αρκετούς πειραματισμούς, κατέληξα να χρησιμοποιήσω συνδιασμό των δύο μεθόδων για να έχω το αποτέλεσμα που ήθελα.

    'Παραθέτω τον κώδικα σε vb
    'InputPanel1 είναι έναι ένα InputPanel control
    'και το PanelSIP είναι ένα Panel control με dock property Bottom

    Private
    Sub InputPanel1_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles InputPanel1.EnabledChanged
       SuspendLayout()
       PanelSIP.Visible = InputPanel1.Enabled
       PanelSIP.Height = InputPanel1.Bounds.Height
       Inputpanel(Me.Panel1.Controls, Me.InputPanel1.Enabled, InputPanel1.VisibleDesktop.Height)
       ResumeLayout()
    End Sub

    Δεν ξέρω εάν βοήθησα κάποιον, αλλά επείδη παιδεύτηκα λιγάκι, θέλησα να το μοιραστώ με εσάς.

    Ευχαριστώ και συγγνώμη για την πολυλογία!

     


     

    Δημοσίευση στην κατηγορία:
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems