私のクラスの 1 つで、小さな暗号化プログラムを作成する必要があります。私のプログラムには、frmMenu、frmEncodage、frmChiffrement の 3 つのフォームがあります。プログラムが起動すると、Menu フォームがポップアップします。その後、2 種類の暗号化から選択できる ComboBox があります。選択したら、ボタンを押して開始します。悲しいことに、暗号化フォーム (frmEncodage) の 1 つをコーディングし終えたとき、メニューでフォームを選択したときに、プログラムでそのフォームを開くことができませんでした。エラーが表示されました:「フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: 文字列 "a" から型 'Integer' への変換が無効です。」
修正方法がわかりません。あなたの助けが必要です。私の frmMenu のコードは次のとおりです。
Private Sub btnDebuter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDebuter.Click
If cbxMenuChoix.Text = "Rotation" Then
Me.Hide()
frmEncodage.Show()
ElseIf cbxMenuChoix.Text = "Chiffrement par substitution" Then
Me.Hide()
FrmChiffrement.Show()
Else
MessageBox.Show("Veuillez entrer un choix d'encodage")
End If
End Sub
これは frmEncodage のコードです。
Dim boEncodageNeg, boMajuscule As Boolean
Dim inDecalage As Integer
Dim inProfondeur As Integer
Dim tbValeurLettre() As Integer = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
Dim byValeurFinal As Byte
Dim stInput, stLettre, stChaine As String
Dim inLettreNum As Integer
Private Sub btnRotRetour_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRotRetour.Click
Me.Hide()
frmMenu.Show()
End Sub
Private Sub btnRotAide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRotAide.Click
End Sub
Private Sub btnRot13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRot13.Click
End Sub
Private Sub btnRotChiffrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRotChiffrer.Click
stInput = rtbRotInput.Text
For i = 1 To stInput.Length - 1
For ii = 0 To inProfondeur
If ii = 0 Then
stLettre = stInput.Chars(i)
End If
If stLettre = stLettre.ToUpper Then
boMajuscule = True
Else
boMajuscule = False
End If
stLettre.ToLower()
For iii = 0 To tbValeurLettre.Length - 1
If stLettre = tbValeurLettre(iii) Then
inLettreNum = iii
End If
Next
byValeurFinal = inDecalage + inLettreNum
If byValeurFinal > 25 Then
byValeurFinal = byValeurFinal - 25
End If
stLettre = tbValeurLettre(byValeurFinal)
Next
stChaine &= stLettre
Next
rtbRotOutput.Text = stChaine
End Sub
Private Sub btnRotDechiffrer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRotDechiffrer.Click
End Sub