Il tuo scopo è sostanzialmente quello di porre un colore all'interno di una cella della GridView.
Il tuo file dovrà almeno contenere:
* le coordinate delle celle che si intendono colorare/evidanziare. Tali coordinate si attribuiscono specificando il numero d'indice indentificativo della riga e della colonna alle quali la cella da colorare appartiene in comune.
* il colore da impostare.
Nell'esempio pratico che segue, abbiamo una GridView composta da 3 righe e 3 colonne.
Vogliamo colorare/evidenziare di rosso la cella appartenente in comune alla terza riga ed alla prima colonna.
Per colorare una cella si attribuirà il numero identificativo del colore prescelto alla proprietà .Background della cella stabilita.
Public Sub Form_Open()
With GridView1
.Columns.Count = 3
.Rows.count = 3
End With
' Individuiamo la cella da colorare ed impostiamo il colore (ad esempio il rosso):
GridView1[2, 0].Background = &FF0000
End
Ciao vuott, grazie per la risposta :)
Il tuo scopo è sostanzialmente quello di porre un colore all'interno di una cella della GridView.
In realtá il mio scopo (o meglio il mio desiderio ;D) è provocare un evento CLICK sulla casella, non solo cambiare il colore. Dato che ad ogni CLICK sulla casella corrispondono una serie di operazioni (richiami a varie SUB).
una parte di queste operazioni:
Public Sub Gridview1_Click()
If GridView1.Current.Background = Color.Gray Then
GridView1.Current.Background = Color.White
listView1.Remove(GridView1.Current.Text)
txtBox1.Text = CInt(txtBox1.Text) - 1
Else
GridView1.Current.Background = Color.Gray
listView1.Add(GridView1.Current.Text, Format(GridView1.Current.Text, "00"))
txtBox1.Text = CInt(txtBox1.Text) + 1
Endif
.
.
.
.
End
:ciao:
Se dunque intendi invocare una sub-procedura o una funzione (ossia una sub-procedura che ritorna un valore alla funzione chiamante), puoi fare una cosa così:
Il codice che ho evidenziato rappresenta una parte delle istruzioni attivate dall'evento click sulla casella del Gridview. Per ogni casella cliccata naturalmente.
Quando devo ricreare la stessa situazione partendo da un file, quindi ripetere per ogni casella tutte le operazioni, sarebbe stato semplicissimo se solo avessi potuto attivare l'evento click, magari con le coordinate. Come vedi, proprio nella gestione dell'evento, c'è il riferimento al Current per cui non mi devo preoccupare di gestire nient'altro.
Avrei potuto far questo ad esempio:
Public Sub Button4_Click()
Dim a, b As Integer
For a = 0 To GridView1.Rows.count - 1
For b = 0 To GridView1.Columns.count - 1
If GridView1[a, b].text = txtDaFile Then
GridView1_Click() ' non funziona perché il CURRENT non è attivato
EndIf
Next
Next
End
8)
Attualmente l'escamotage è quello di ripetere tutte le funzioni e istruzioni che ho nell'evento click gestendo la numerazione riga/colonna.
Piú o meno cosí:
Public Sub ControllaRiempi_Gridview1()
Dim a, b As Integer
For a = 0 To GridView1.Rows.count - 1
For b = 0 To GridView1.Columns.count - 1
If GridView1[a, b].text = txtDaFile Then
GridView1[a, b].Background = Color.Gray
listView1.Remove(GridView1[a, b].Text)
.
.
.
.
Endif
Next
Next
.
.
.
.
End
Pensavo esistesse il modo di attivare il benedetto evento click della casella ma sembra di no. :hatecomputer:
Grazie lo stesso :) :ciao:
volevo evitare questa RIDONDANZA.
Potresti fare una cosa così:
Public Sub Gridview1_Click()
cella(GridView1.Row, GridView1.Column)
End
Public Sub Button1_Click()
Dim a, b As Integer
' Vado a leggere dal file ed attribuisco i dati a due variabili che rappresentano rigo e colonna:
a = valore_per_il_rigo
b = valore_per_la_colonna
cella(a, b)
End
Private Procedure cella(r As Integer, c As Integer)
If GridView1[r, c].Background = Color.Gray Then
GridView1[r, c].Background = Color.White
listView1.Remove(GridView1[r, c].Text)
txtBox1.Text = CInt(txtBox1.Text) - 1
Else
GridView1[r, c].Background = Color.Gray
listView1.Add(GridView1.[r, c].Text, Format(GridView1.[r, c].Text, "00"))
txtBox1.Text = CInt(txtBox1.Text) + 1
Endif
End
:-\
Public Sub Button4_Click()
Dim a, b As Integer
For a = 0 To GridView1.Rows.count - 1
For b = 0 To GridView1.Columns.count - 1
If GridView1[a, b].text = txtDaFile Then
GridView1.MoveTo(a, b)
Endif
Next
Next
End
Public Sub GridView1_Change()
GridView1.Current.Background = Color.Gray
listView1.Remove(GridView1.Current.Text)
End