Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Vb6] Selezionare riga in MSFlexGrid

    Ciao ragazzi,

    ho una MSFlexGrid impostata per la selezione di tutta una riga (flexSelectionByRow) e, una volta che l'utente seleziona una riga (quindi, all'evento click) "catturo" il dato presente nella colonna 4 e abilito due command. Chiaramente mi sparisce la selezione della riga e questo potrebbe creare confusione nell'utente quindi vorrei "ripristinare" tale selezione (per tutta la riga) via codice.
    Qui sotto, per essere più chiaro, lascio il codice.

    fgrMemorie.Col = 4
    lblIDMemoria.Caption = fgrMemorie.Text
    cmdUpdate.Enabled = True
    cmdDelete.Enabled = True

    Grazie a tutti,


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E quindi? Mi sono perso la domanda ...

  3. #3
    Originariamente inviato da MissRachele
    ...ho una MSFlexGrid impostata per la selezione di tutta una riga (flexSelectionByRow) e, una volta che l'utente seleziona una riga (quindi, all'evento click) "catturo" il dato presente nella colonna 4 e abilito due command. Chiaramente mi sparisce la selezione della riga....
    Ciao !
    Se nell'evento Click "catturi" il contenuto di una colonna NON ti deve sparire la selezione sulla riga !
    Il punto e': come "catturi" ?

    Se usi: .TextMatrix(.Row,4)
    non ti deve sparire la selezione sull'intera riga !
    IceCube_HT (VB6 fan Club)

  4. #4
    allora...provavo a catturare il contenuto della riga x e della colonna 4 con:

    msflexgrid.col =4
    label1.caption= msflexgrid.text

    ma come ho scritto (e come, giustamente hai fatto notare tu) mi deseleziona la riga precedentemente selezionata dall'utente.

    ho provato con TextMatrix come mi hai detto tu e FUNZIONA

    Grazie Mille

    Posso sottoporti un'altro quesito?

    La msflexgrid in questione elenca un tot di righe (una per ogni record..); dalla form che la contiene posso aprire un'altra form che permette di aggiungere un nuovo record.
    Una volta che ho aggiunto il record faccio l'unload della form che contiene la msflexgrid e la ricarico (.show 1). A parte che mi sembra un po' macchinosa come soluzione, ma inoltre mi crea alcuni problemi: alcuni command presenti nella form che contiene la msflexgrid, una volta che la ricarico, non si vedono! Anche se in realtà, conoscendo la loro posizione, cliccandoli risultano attivi. Come posso fare l'aggiornamento della msflexgrid senza fare l'unload e il . show 1?

    Grazie

    PS: ho scritto un tema

  5. #5
    Originariamente inviato da MissRachele
    La msflexgrid in questione elenca un tot di righe (una per ogni record..); dalla form che la contiene posso aprire un'altra form che permette di aggiungere un nuovo record.
    Una volta che ho aggiunto il record faccio l'unload della form che contiene la msflexgrid e la ricarico (.show 1). A parte che mi sembra un po' macchinosa come soluzione, ma inoltre mi crea alcuni problemi: alcuni command presenti nella form che contiene la msflexgrid, una volta che la ricarico, non si vedono! Anche se in realtà, conoscendo la loro posizione, cliccandoli risultano attivi. Come posso fare l'aggiornamento della msflexgrid senza fare l'unload e il . show 1?
    Scusa, ma tu lavori all'UCAS ?

    Quando aggiungi una riga alla MSFlexGrid non devi fare NULLA per aggiornarla, e' automatico !

    Mi sa che e' come per il problema precedente... come aggiungi il record alla Grid ???
    Se usi .AddItem (e scrivi con .TextMatrix su tutte le colonne interessate), non devi fare null'altro !

    Ciao !
    IceCube_HT (VB6 fan Club)

  6. #6
    miscriveresti due righe di codice d'esempio?

    ah cos'è l'UCAS?

  7. #7
    Originariamente inviato da MissRachele
    miscriveresti due righe di codice d'esempio?

    ah cos'è l'UCAS?
    Se GRID e' il nome della MsFlexGrid, puoi aggiungere una riga ad esempio con:
    codice:
       Dim r As Integer
       GRID.AddItem "Colonna0"    'inserisce la nuova riga in fondo, e scrive la prima colonna (0)
       r = GRID.Rows - 1             'il numero di riga inserita
       GRID.TextMatrix(r, 1) = "Colonna1"  'il contenuto della seconda colonna (1)
       ....
    ma usa il metodo che preferisci, l'importante, per non avere "interferenze" con la selezione, e' usare .TextMatrix(R, C) per scrivere o leggere le singole celle di coordinate R, C.
    Puoi usare anche IN LETTURA le proprieta' .Row e .Col senza problemi, ma se fai:
    codice:
    msflexgrid.col =4
    e' come se selezionassi la colonna 4 della riga corrente, mentre NON e' necessario, ne' utile...


    ...Ah, mmm.... era l'Ufficio Complicazione Affari Semplici

    Ciao !!!
    IceCube_HT (VB6 fan Club)

  8. #8
    grazie mille...così, anche se devo scrivere più codice, funziona meglio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.