Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

wyświetlanie ContextMenu pod picturebox

Bluenight-2008 17 Cze 2011 20:31 1157 6
  • #1 17 Cze 2011 20:31
    Bluenight-2008
    Poziom 11  

    Jak zrobić, aby po kliknięciu w picturebox wyświetlił się ContextMenu pod picturebox?

    0 6
  • #3 18 Cze 2011 07:58
    Bluenight-2008
    Poziom 11  

    Program pisze w C# (Windows Form Applicalion).

    0
  • #4 18 Cze 2011 09:07
    loganek2
    Poziom 16  

    Dodajesz na formę pictureBox i ContextMenuStrip. Następnie we właściwościach PictureBoxa znajdujesz ContextMenuStrip, i wybierasz ten, który włożyłeś na formę(prawdopodobnie ContexMenuStrip1). Aby edytować itemy, klikasz prawym przyciskiem myszy na obiekt ContextMenuStrip i klikasz Edit items

    0
  • #5 18 Cze 2011 11:33
    Mad.
    Poziom 18  

    1. Na pictureBox chcesz klikać lewym czy prawym przyciskiem (tak aby pokazał się ContextMenuStrip)?
    2. Pozycje w ContextMenuStrip są zawsze takie same (np. zawsze 5), czy może chcesz je dodawać dynamicznie w czasie działania programu (czasami będą 2, a czasami 4 itd.)?
    3. Rozumiem, że lokalizacja ContextMenuStrip ma być sztywno ustawiona, dokładnie pod pictureBox'em?

    Btw, dodaj do nazwy tematu [C#].

    0
  • #6 18 Cze 2011 17:51
    Bluenight-2008
    Poziom 11  

    Tak Mad. lewym klawiszem myszy chce żeby się wyświetlało menu, pozycje są zawsze takie same, lokalizacja musi być sztywna zawsze pod pictureboxem, a dokładniej chodziło mi o coś takiego jak ma Opera 11 (Menu). Komponent comtextMenuStrip1 (mam już w nim zrobione nazwy typu: nowy, odtwórz itd.) mam już na formie i picturebox1 też już jest. Wcześniej próbowałem w zdarzeniach picturebox1 (MouseClick), ale menu włącza się zawsze gdzie stoi kursor.

    0
  • Pomocny post
    #7 18 Cze 2011 19:26
    Mad.
    Poziom 18  

    Skoro pozycje są zawsze takie same, to rozwiązanie jest prostsze. Wykorzystaj zdarzenie Click kontrolki pictureBox. W zdarzeniu tym wyświetl contextMenuStrip w odpowiedniej lokalizacji za pomocą Show(współrzędna X, współrzędna Y). Przykład dla formularza, w którym jest pictureBox:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Pamiętaj, że lokalizacja kontrolki jest definiowana od lokalizacji kontrolki nadrzędnej (lub formularza). Jeśli pictureBox jest w groupBox, który jest w formularzu, to musisz po kolei dodać współrzędne formularza, groupBox i pictureBox. Jeśli contextMenuStrip ma być po obrazkiem to do współrzędnej Y dodaj jeszcze wysokość kontrolki pictureBox.

    Oczywiście w takim przypadku nie trzeba umieszczać contextMenuStrip w własciwości ContextMenuStrip kontrolki pictureBox.


    Edit:
    Trochę przekombinowałem ;) To przez to, że sam ciągle uczę się programowania. Metoda Show posiada też inne warianty, jak np.
    Kod: csharp
    Zaloguj się, aby zobaczyć kod
    lub
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Jak widać dużo prościej i menu jest idealnie pod obrazkiem.

    0