对于我的一个班级,我必须制作一个小型加密程序。在我的程序中,我有三种形式:frmMenu、frmEncodage、frmChiffrement。程序启动时,会弹出菜单表单。之后,有一个 ComboBox 可让您在两种加密类型之间进行选择。做出选择后,按下按钮即可开始。可悲的是,当我完成加密表单之一 (frmEncodage) 的编码后,当我在菜单中选择它时,我的程序不会让我打开它。弹出错误:“创建表单时出错。有关详细信息,请参阅 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