Controllare CheckBox in base al colore di sfondo...

giovedì 19 febbraio 2004 - 07.12

Anonimo Profilo | Senior Member

...è possibile?

Io ho provato a fare questo script, ma non spunta nulla.
In un panel dovrei spuntare delle checkbox che hanno il colore di sfondo giallo, mentre non dovrei spuntare quelle con sfondo rosso.

Ho pensato a questo:
Dim objCheckBox As CheckBox
For Each objControl As Control In cucina.Controls
Select Case objControl.GetType().Name
Case "CheckBox"
objCheckBox = objControl
Dim var As String
If var = Color.op_Equality(objCheckBox.BackColor, System.Drawing.Color.Yellow) Then
objCheckBox.Enabled = True
objCheckBox.Checked = True
End If
End Select
Next

Cosa ho sbagliato? Grazie mille

Brainkiller Profilo | Guru

Ciao Ball,
così a occhio e croce:

sopra fai un For Each Control quindi qui:

objCheckBox = objControl

forse è necessario un casting no?

Seconda cosa, cos'è sto op_Equality ? io non l'ho mai neanche vista perchè non fai semplicemente.

If objCheckBox.BackColor = Color.Yellow Then

e prosegui?
Entra in debug e controlla passo passo cosa succede magari anche con il Quick Watch.
ciao

david

Anonimo Profilo | Senior Member

op_Equality è un metodo per confrontare i colori...restituisce un boolean.

Grazie David, provo

Anonimo Profilo | Senior Member

Per come hai detto te:
If objCheckBox.BackColor = Color.Yellow Then

Non funziona perchè dice che l'operatore "=" non è definito per i tipi System.Drawing.Color.

Per il cast...puoi essere più preciso?

Brainkiller Profilo | Guru

Hai ragione, beh potevi fare anche in altro modo, per esempio:

If Label1.BackColor.ToArgb() = Color.Yellow.ToArgb() Then

Per il casting, allora tu fai un'enumerazione di tutti i controlli (classe Control generica). Quando incontri però uno del tipo che tu richiedi, prima di assegnarlo a un riferimento di tipo checkbox per esempio devi fare un casting quindi convertire l'oggetto trovato Control al tipo corretto CheckBox.
Guarda sul framework la funzione CType

ciao
david

Anonimo Profilo | Senior Member

Ok grazie David, professionale come al solito :)
Provo e ti so dire
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