Impossible d'effectuer un cast d'un objet de type 'projet.questionscases' en typ [Résolu]

Signaler
-
 Utilisateur anonyme -
Bonjour,
J'ai ce message d'erreur lors de la compilation de mon application
'impossible d'effectuer un cast d'un objet de type 'projet.questionscases' en type systeme.windows.forms.checkbox'

voici le code qui y correspond:
For Each UserControl As Control In monPanel.Controls
Dim mCheckbox As Control
For Each mCheckbox In monPanel.Controls
Try
Dim cb As CheckBox = CType(mCheckbox, CheckBox)
If Not cb.CheckState = CheckState.Checked Then
strRequete = "INSERT INTO REPONDRE_PRE_ENREGISTRER (IDCANDIDAT,IDREPONSE) VALUES ('" & 1 & "','" & cb.Name & "')"
End If
Catch Probleme As Exception
MessageBox.Show("L'erreur suivante à été rencontrée :" + Probleme.Message)
End Try
Next
Next

la classe QuestionsCases :

Public Class QuestionsCases

Private mTitre As String
Private mNumQ As String 'Numero Question
Private mIdC As Integer 'Chapitre

Sub New(ByVal idC As Integer, ByVal NumQ As Integer, ByVal titre As String)
InitializeComponent()
mTitre = titre
mIdC = idC
mNumQ = NumQ
End Sub

Private Sub QuestionsCases_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = mIdC & "." & mNumQ & " - " & mTitre

End Sub

End Class

1 réponse


Bonjour,

Cette erreur vient du fait que tu énumères tous les contrôles de ton panel par cette ligne :
For Each mCheckbox In monPanel.Controls 

et que tu 'castes' à l'aveugle ces contrôles par cette ligne :
Dim cb As CheckBox = CType(mCheckbox, CheckBox) 

Il suffit que ton panel contienne un controle autre qu'un checkbox pour générer cette erreur.

Fais un test de type avant de 'caster' ton contrôle :
if typeof mCheckbox is checkbox then
   '...