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

 

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

Χρήση combobox σε PDA εφαρμογή;

Îåêßíçóå áðü ôï ìÝëïò SNikolaidis. Τελευταία δημοσίευση από το μέλος SNikolaidis στις 07-05-2008, 14:41. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-05-2008, 11:11 41841

    Χρήση combobox σε PDA εφαρμογή;

    Καλημέρα σε όλους σας.

    Εδώ και αρκετά χρόνια, προγραμματίζω σε delphi (oracle, sql server, mysql) και μου ζητήθηκε να κάνω μια εφαρμογή σε PDA. Έτσι ήρθα για πρώτη φορά σε επαφή με το Visual Studio 2005...

    Αν και αρκετά έμπειρος στον χώρο, ώρες ώρες νοιώθω εντελώς χαμένος, με κάποια θέματα/προβλήματα που αντιμετωπίζω, που δεν περίμενα καν να έχω προβλήματα... όπως η χρήση του combobox.

    Λοιπόν, έχω κάνει μια εφαρμογή σε vb.net που συνδέεται με μια SQLite βάση από κάτω (πάντα για PPC2003).

    Έχω κάνει όμορφα κι ωραία μια φόρμα με ένα DataGrid για το browsing των εγγραφών ενός πίνακα, με την χρήση της εργασίας Generate Data Forms. Ως εδώ, όλα καλά. Στην μία φόρμα όμως, χρειάζεται να χρησιμοποιήσω ένα combobox, που εμφανίζει τιμές από έναν άλλο πίνακα.

    Στα πεδία DataSource, DisplayMember και ValueMember ορίζω τιμές από τον reference πίνακα που παίρνω την λίστα (που γεμίζει με τιμές το combobox).

    Και εδώ είναι που αρχίζουν τα προβλήματα.

    Περίπτωση Α:
    Εάν συνδέσω το combobox με τον κύριο πίνακα μέσω του πεδίου Text (όπως έκανα και με τα υπόλοιτα TextBoxes), τότε εμφανίζει την πρώτη τιμή της λίστας και όχι αυτήν που θα έπρεπε. Επίσης, εάν δικιμάσω να αλλάξω τιμή, τότε πετάγεται το εξής exception:

    A first chance exception of type 'System.FormatException' occurred in mscorlib.dll

    και κολλάει η φόρμα

    Περίπτωση Β:
    Εάν συνδέσω το combobox με τον κύριο πίνακα μέσω του πεδίου SelectedValue  τότε εμφανίζει την πρώτη τιμή της λίστας και όχι αυτήν που θα έπρεπε. Παρόλα αυτά, μπορώ να αλλάξω τιμές, και μάλιστα αποθηκεύονται κανονικά.

    Η πλάκα είναι ότι εάν αποθηκεύσω χωρίς να αλλάξω τίποτε, παίρνει την μεταβολή από το combobox και αποθηκεύει στην εγγραφή την πρώτη τιμή του πίνακα...


    Και στις δύο περιπτώσεις όμως, το σημαντικό πρόβλημα είναι ότι δεν εμφανίζει στο combobox την σωστή τιμή αλλά φέρνει την πρώτη τιμή της λίστας.

    Εάν μπορεί να βοηθήσει κάποιος, θα ήμουν υπόχρεος...

    Στράτος Νικολαΐδης
  •  07-05-2008, 14:41 41852 σε απάντηση της 41841

    Απ: Χρήση combobox σε PDA εφαρμογή;

    Τελικά βρήκα μία λύση που δουλεύει (να'ναι καλά τα google groups - απορώ πώς δεν σκέφτηκα να μπω νωρίτερα και να κοιτάξω), αλλά μου κάνει εντύπωση... γιατί... αυτό που βρήκα ήταν το εξής:

    Στην ρουτίνα OnLoad της φόρμας, προσθέτω τον εξής κώδικα:

        ' Για όνομα του Θεού και της Παναγίας... Η σύνδεση του πεδίου με τον κύριο πίνακα, πρέπει
        ' να γίνει μέσω κώδικα... δεν πάμε καλά...
        Try
          ' Καθαρίζουμε τυχόν δεδομένα από πριν και...
          myComboBox.DataBindings.Clear()
          ' Προσθέτουμε το binding στο πεδίο SelectedValue
          myComboBox.DataBindings.Add("SelectedValue", MyTableBindingSource, "MyCategoryID")
        Catch
        End Try


    Αυτό δουλεύει όμορφα. Η απορία όμως παραμένει. Γιατί να πρέπει να το κάνω αυτό μέσω κώδικα; Είναι η manually εκδοχή της Β περίπτωσης που ανέφερα στο προηγούμενο post μου. Δεν θα έπρεπε να δουλέψει όμως και μέσω του designer;

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