Disabilitare in button in un datagridview

mercoledì 24 settembre 2008 - 11.41

trinity Profilo | Guru

Salve ragazzim
ho creato un datagridview e ci sono caricate 5 colonne, la prima è di tipo button e carica un pulsante chiamato modifica.
Io a seconda del valore che viene caricato nell'ultima colonna devo determinare se abilitare il Button oppure no.

Ossia una cosa dele genere:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

come posso fare?
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

19018 Profilo | Expert

Se ho capito bene il tuo problema, questo articolo ti dovrebbe aiutare -> http://msdn.microsoft.com/en-us/library/ms171619.aspx

Non te lo spiego io perchè è un procedimento lungo, per questo ti conviene leggere direttamente dall'articolo.

ciao
Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

ok solo che nel datagridview di vbnet 2008 non ci sono alcune sintassi riportate nell'articolo.
e poi io devo disabilitare il button nel momento della creazione delle righe, leggendo l'articolo il button se non erro si disabilita quando si clicca su una checkbox
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

19018 Profilo | Expert

Si ma la logica è la stessa...è solo una questione di quando applicarla.

ciao
Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

onestamente non riesco a capire come poter applicare quella logica durante la creazione delle righe quando carico il dataset

Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

19018 Profilo | Expert

The example defines a new cell type, DataGridViewDisableButtonCell, that derives from DataGridViewButtonCell. This cell type provides a new Enabled property that can be set to false to draw a disabled button in the cell.

Tradotto in pratica, ti istanzi il controllo modificato con questo nuovo tipo di cella e su onLoad cicli e disabiliti il bottone.
Più di questo ti dovrei scrivere io il codice e non ho tempo

ciao e buon lavoro!

Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

Ok ma io le colonne button le ho create a monte con il designer dell'oggetto datagridview in visual studio, i dati li carico attraverso un dataset e pertanto mi si creano le righe in griglia, da come dici te dovrei ricreare una colonna da codice...
Invece pensavo che bastasse intercettare la cella corrente e disabilitarla e pertanto anche il button veniva disabilitato, e se volessi rendere il button invisibile?Stessa teoria?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

19018 Profilo | Expert

Utilizzare il drag&drop dei controlli per sviluppare è un metodo veloce MA poco flessibile!
Tutte le personalizzazioni che vanno oltre le classiche proprietà dei controlli devi farle con il codice.

Quindi anche per visible SE NON E' già tra le proprietà di default del controllo lo devi implementare tu!

ciao
Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

allora al volo ho scritto questo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

solo che quando richiamo nell'evento cell_painting questa riga di codice:

Dim buttonCell As DataGridViewDisableButtonCell = CType(DataGridView1.Rows(e.RowIndex).Cells(0),DataGridViewDisableButtonCell)
buttonCell.Enabled = False


mi dice il seguente messaggio:

Impossibile eseguire il cast di oggetti di tipo 'System.Windows.Forms.DataGridViewButtonCell' sul tipo 'DataGridViewDisableButtonCell'.

Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5