Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di _J_
    Registrato dal
    Apr 2007
    Messaggi
    218

    Pulsanti nei dataGridView

    Buongiorno a tutti!!
    Ho costruito un oggetto DataGridView ed ho modificato il tipo di una colonna in 'DataGridViewButtonColumn'.
    Da premettere che ho cambiato il nome del controllo in 'disp' (per ovvi motivi di lunghezza del nome) mentre il relativo campo è di tipo 'bit', quindi può essere solo 'true' o 'false'.
    Adesso nella colonna ho una serie di pulsanti che valgono 'true' o 'false' a seconda dello stato del mio database.

    Al click sul pulsante ho associato tali istruzioni:

    private void libroDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
    string testo = dataGridViewTextBoxColumn7.DataGridView.SelectedCe lls[0].Value.ToString();
    if (testo=="true") MessageBox.Show(testo);
    }

    cioè voglio reperire col click lo stato (true o false) del pulsante attualmente cliccato, e se ciò è 'true' allora vedrò un messaggio di testo che me lo dice...

    Il problema è che tutto ciò funziona... ma SENZA L'IF!!!!
    Nel senso che se tolgo l'IF la messagebox me la da con l'info voluta, ma con l'IF è come se non recepisse la stringa 'testo'...

    Come mai????

    Sto seriamente sospettando che sia errata la definizione della stringa 'testo'..
    Qualcuno potrebbe aiutarmi??

    Grazie in anticipo!!

    _J_

  2. #2
    Utente di HTML.it L'avatar di fede_00
    Registrato dal
    May 2004
    Messaggi
    279
    prima prova a vedere cosa contiene la stringa testo
    l'if controlla l'esatta corrispondenza della stringa 'true'
    ma se testo contenesse True che succede? non entra nell' IF

  3. #3
    Controlla che non ci siano spazi prima o dopo e che sia scritta tutto nello stesso case

    if (testo.ToLower().Trim() == "true")

    Ciao
    K
    Kalman

  4. #4
    Utente di HTML.it L'avatar di _J_
    Registrato dal
    Apr 2007
    Messaggi
    218

    Tutto Risolto!

    In effetti era un problema di maiuscole....
    GRAZIE 1000 ad entrambi!!

    _J_


  5. #5
    Una domanda, ma non puoi accedere al valore del campo tramite il parametro e?

  6. #6
    Utente di HTML.it L'avatar di _J_
    Registrato dal
    Apr 2007
    Messaggi
    218
    cioè???
    :master: :master: :master:

  7. #7
    Cioè ho visto che il valore lo prendi da
    dataGridViewTextBoxColumn7.DataGridView.SelectedCe lls[0].Value.ToString();
    non dovrebbe essere contenuto anche in e ?

    (object sender, DataGridViewCellEventArgs e )

  8. #8
    Utente di HTML.it L'avatar di _J_
    Registrato dal
    Apr 2007
    Messaggi
    218
    devi sapere che sono ancora alle prime armi con il visual studio, e sinceramente non ho pensato a questa eventualità...
    Mi puoi dire in che modo potrei controllare effettivamente il valore di e?
    Così almeno imparo qcs in più..

    Ciao!
    _J_

  9. #9
    La mia era più una domanda che un affermazione, anche io come te sono alle prime armi
    il dubbio è scaturito dal fatto che in un esempio ho visto questo:

    codice:
    Sub detailsClicked(sender as Object, e As DataGridCommandEventArgs)
        Dim buttonColumn as TableCell = e.Item.Cells(0)
        Dim FAQIDColumn as TableCell = e.Item.Cells(1)
        Dim DescColumn as TableCell = e.Item.Cells(2)
        
        Dim buttonColText as String = buttonColumn.Text
        Dim FAQIDColText as String = FAQIDColumn.Text
        Dim DescColText as String = DescColumn.Text
    End Sub
    A quanto pare in e sono contenute tutte le colonne del datagrid
    di tipo TableCell che però ha l'attributo Text il quale contiene il valore.
    Non ho provato ma a regola si dovrebbe poter abbreviare la forma con
    Dim DescColText as String = e.Item.Cells(2).Text

    Inoltre se ben ci pensi il modo che hai riportato va a prendere da dentro un sub
    un oggetto della pagina (?)
    Spiegami un attimo quel dataGridViewTextBoxColumn7
    che cosa sarebbe?
    Te lo chiedo perchè se fosse appunto un DataGrid della pagina significherebbe
    che i Sub hanno piena visibilità degli oggetti anche al loro esterno, o forse è meglio dire
    che gli oggetti della pagina sono globali

    Magari se provi poi fammi sapere.

    Altra cosa mi pare di aver capito che i DataGrid siano stati sostituiti dai GridView
    Anche se ancora pienamente supportati i DataGrid la microsoft ne sconsiglia l'uso

  10. #10
    Utente di HTML.it L'avatar di _J_
    Registrato dal
    Apr 2007
    Messaggi
    218
    Nel tuo codice ho visto che a quanto pare è stata scritta EX NOVO una funzione...io invece ho usato delle funzioni già esistenti, non ho scritto nessuna funzione di mio, ho solo aggiunto codice ad un evento che già c'era (il libroDataGridView_CellContentClick), anche se mi piacerebbe scrivere delle funzioni mie per delle ragioni che ti dirò a breve...

    Il dataGridViewTextBoxColumn7 è solo una colonna della tabella 'libro', ed è la colonna numero 7 che contiene i dati che volevo manipolare... quella istruzione:
    string testo = dataGridViewTextBoxColumn7.DataGridView.SelectedCe lls[0].Value.ToString();
    era l'unico modo per reperire il valore del pulsante relativamente ad una certa cella (cioè se la cella vale 'true' riceverò 'true, se vale 'false' riceverò 'false'...).

    A proposito di celle... ho notato che i metodi che Visual Studio mette a disposizione sono riferiti alle entità in sè per sè, nel senso che se ad esempio prendo l'evento libroDataGridView_CellContentClick, esso lavorerà in seguito al click sul contenuto delle celle, ma di UNA QUALSIASI CELLA e non di una specifica cella che magari scelgo io: in poche parole quell'evento lavora su TUTTE LE CELLE del datagrid e mi dà lo stesso effetto per ognuna di esse, mentre a me serve che lavori sulle celle di una sola colonna, la ormai famosa 'column7'.

    Ecco perchè ti dicevo che volevo imparare a scrivere funzioni mie...
    Se hai qualche suggerimento per questa cosa, esso sarà bene accetto!

    Comunque grazie per l'interessamento!
    _J_

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.