Utilizzo ContextMenuStrip [Risolto]

di il
6 risposte

Utilizzo ContextMenuStrip [Risolto]

Salve a tutti ... sono nuovo del forum ed anche di VB.NET ... sto cercando di imparare ...
(Per brevità ... DGV=DataGridView e CMS=ContextMenuStrip)
Ho inserito un DGV in un Form che popolo senza nessuna connessione a DB.
Ho associato al DGV un CMS con delle scelte che cambiano il valore della cella selezionata.
Il mio problema è ... come posso dire al DGV di visualizzare il CMS soltanto se sono selezionate delle celle specifiche ? (Per esempio soltanto le celle delle colonne 2,3,4,5).
Anche perché se premo il tasto dx del mouse sul DGV e scelgo un valore ... il valore viene assegnato alla cella attiva in quel momento ... e questo non va bene.
Esempio : tasto sx mouse su una cella ... essa viene selezionata/evidenziata ... tasto dx del mouse su altra cella ... essa non viene selezionata ma con il CMS posso scegliere un valore che però viene assegnato alla cella selezionata e non a quella dove ho cliccato con il tasto dx per ottenere il CMS ... e questo ovviamente è fuorviante per l'utente che cambia una cella per un'altra.
In pratica il CMS deve apparire solo sulla cella selezionata/evidenziata e non su tutto il DGV.
Spero di essere stato chiaro ...

6 Risposte

  • Re: Utilizzo ContextMenuStrip [Risolto]

    libfrank2017 ha scritto:


    Ho associato al DGV un CMS con delle scelte che cambiano il valore della cella selezionata.
    come hai fatto ? comunque leggi qui https://stackoverflow.com/questions/6761320/context-menu-for-datagridview-cell-rowheader-and-columnheader
  • Re: Utilizzo ContextMenuStrip [Risolto]

    Ciao Patel ...
    Mi è stato utile quel link ... però mi accade una cosa strana ...
    Usando la proprietà HitTest del DGV associata all'evento MouseDown riesco a controllare le cose che mi servono ... anche non far uscire proprio il CMS su celle dove non mi interessa ... il problema è che usando la proprietà ColumnIndex = ... mi funziona solo la prima volta ... In pratica io controllo che quel valore sia per esempio > 1 con un "If" ... se il controllo non è vero funziona tutto bene ... appena però diventa vero (cioè > 1) il CMS esce (e va bene così) ... ma da quel momento esce sempre come se il controllo fosse sempre vero anche se con un MsgBox controllo il valore di ColumnIndex ed è inferiore a 1 ...
  • Re: Utilizzo ContextMenuStrip [Risolto]

    Prima del tuo link comunque avevo associato il CMS al DGV al livello di progettazione ... non sapevo che potevo farlo da codice ... in questo modo posso scegliere dove e quando farlo uscire ... altrimenti (ovviamente) esce sempre ... resta però il problema su indicato.
  • Re: Utilizzo ContextMenuStrip [Risolto]

    Capito ...!!

    All'inizio dell'evento MouseDown devo impostare su "Nothing" il CMS del DGV ... era ovvio ...

    Ciao e grazie ...
  • Re: Utilizzo ContextMenuStrip [Risolto]

    libfrank2017 ha scritto:


    Mi è stato utile quel link ...
    come hai potuto vedere facendo ricerche in inglese si trova spesso la soluzione
  • Re: Utilizzo ContextMenuStrip [Risolto]

    Sono d'accordo ...

    Ancora grazie ...
Devi accedere o registrarti per scrivere nel forum
6 risposte