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

 

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

Δυναμικό ContextMenuStrip

Îåêßíçóå áðü ôï ìÝëïò Ioannis P. Τελευταία δημοσίευση από το μέλος Ioannis P στις 19-05-2006, 08:57. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-05-2006, 14:35 12868

    Δυναμικό ContextMenuStrip

    Θέλω να φτιάξω ένα δυναμικό context menu και δεν μπορώ να καταλάβω πως θα προσθέτω υπομενού. Στο MSDN βρήκα κάποιο παράδειγμα αλλά αφορά συγκεκριμένο αριθμό από υπομενού. Καμιά βοήθεια;
  •  17-05-2006, 15:58 12876 σε απάντηση της 12868

    Απ: Δυναμικό ContextMenuStrip

    Αν αυτό μπορεί να σε βοηθήσει......

    Dim menu_users As New System.Windows.Forms.ToolStripMenuItem
    menu_users.Name = "menu_users"
    menu_users.Text = "Χρήστες"
    ContextMenuStrip1.Items.Insert(2, menu_users)
    Dim sub_menu_users As New System.Windows.Forms.ToolStripMenuItem("Διαχείριση χρηστών", Global.CRM.My.Resources.Resources.usersIco, New EventHandler(AddressOf sub_menu_users_Click))
    menu_users.DropDownItems.Add(sub_menu_users)

  •  17-05-2006, 19:41 12880 σε απάντηση της 12868

    Απ: Δυναμικό ContextMenuStrip

    Ευχαριστώ αλλά ο αριθμός των υπομενού στην περίπτωση μου δεν είναι συγκεκριμένος. Τι θα πρέπει να κάνω;
  •  17-05-2006, 20:04 12882 σε απάντηση της 12880

    Απ: Δυναμικό ContextMenuStrip

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

    Dim menu_users As New System.Windows.Forms.ToolStripMenuItem
    menu_users.Text = "Χρήστες"
    ContextMenuStrip1.Items.Insert(0, menu_users)
    Dim sub_menu_users1 As New System.Windows.Forms.ToolStripMenuItem("Διαχείριση χρηστών")
    menu_users.DropDownItems.Add(sub_menu_users1)
    menu_users.DropDownItems.Add(New System.Windows.Forms.ToolStripMenuItem("Διαχείριση χρηστών")
    sub_menu_users1.DropDownItems.Add(New System.Windows.Forms.ToolStripMenuItem("Διαχείριση χρηστών"))

    Απ'ότι βλέπεις μπορείς να το αναπτύξεις όπως θέλεις, όπως π.χ. ένα Treeview.

  •  18-05-2006, 14:28 12925 σε απάντηση της 12868

    Απ: Δυναμικό ContextMenuStrip

    Έχεις δίκιο. Συνδύασα αυτά που μου έγραψες και έκανα το παρακάτω αλλά δεν μπορώ να διαβάσω το click. Τι μπορώ να κάνω; Με την New EventHandler(AddressOf sub_menu_users_Click) που γράφεις δεν βγάζω άκρη.

    For l = 0 To 9
    Dim menu_tasks As New System.Windows.Forms.ToolStripMenuItem
    menu_tasks.Name = "menu_tasks" & l
    menu_tasks.Text = "name" & CStr(l)
    cntxSelDay.Items.Insert(l, menu_tasks)
    Dim sub_menu_tasks As New System.Windows.Forms.ToolStripMenuItem
    For t = 0 To 4
    menu_tasks.DropDownItems.Add("sub" & CStr(t))
    Next
    Next

    Ευχαριστώ πολύ.
  •  18-05-2006, 14:59 12930 σε απάντηση της 12925

    Απ: Δυναμικό ContextMenuStrip

    Με το (AddressOf sub_menu_users_Click) στην ουσία δηλώνεις τι θα εκτελεσθεί όταν δημιουργηθεί το event OnClick.

    Π.χ.

    Private Sub sub_menu_users_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    DO SOMETHING HERE

    End Sub
  •  18-05-2006, 19:49 12948 σε απάντηση της 12868

    Απ: Δυναμικό ContextMenuStrip

    Ωραία. Εγώ όμως θέλω να εκτελείται η ίδια sub σε οποιοδήποτε menuitem και αν κάνω κλικ και να στέλνω στη sub κάποιο ID, διαφορετικό για κάθε menuitem.

    Σ' ευχαριστώ πάρα πολύ για το χρόνο σου και την υπομονή σου (κυρίως).
  •  18-05-2006, 20:16 12949 σε απάντηση της 12948

    Απ: Δυναμικό ContextMenuStrip

    Δεν χρειάζεται να στέλνεις ID, έτσι κι αλλιώς περνάει ολόκληρο το object που έχει προκαλέσει το event ως "sender". Έτσι λοιπόν, μπορείς να κάνεις διάφορα κόλπα όπως να βάλεις στο Tag property του menuitem οποιαδήποτε τιμή (είναι τύπος object). Όταν πλέον τρέξει η procedure, θα μετατρέψεις το sender object σε menuitem και θα διαβάσεις το Tag property
    Vir prudens non contra ventum mingit
  •  18-05-2006, 21:01 12953 σε απάντηση της 12949

    Απ: Δυναμικό ContextMenuStrip

    Και πιο αναλυτικά σε αυτό που λέει ο KelMan στην δημιουργία του menuItem:

    ...
    ...
    menu_tasks.Text = "name" & CStr(l)
    menu_tasks.Name = "menu_tasks" & l
    menu_tasks.Tag = TO ID ΣΟΥ
    ...
    ...

    Και στην εκτέλεση:



    Private Sub menu_tasks(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Dim Id
    Id =CType(sender, System.Windows.Forms.ToolStripMenuItem).Tag
    End Sub

  •  19-05-2006, 08:57 12976 σε απάντηση της 12868

    Απ: Δυναμικό ContextMenuStrip

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