Visual_basic : 如何在点击按钮后获取同一标签中的单个字母和2个和3个连续字母的字母串?
Visual_basic : How to get single letters and letterstrings of 2 and 3 consecutive letters in the same label after clicking button?
尝试用 Visual basic (2015) 为我的孩子制作一个 Windows 应用程序,以帮助他们进行阅读。
制作了 3 个标签(Box1
、Box2
、Box3
),每个标签可以包含 1 个字母,但也可以包含 2 或 3 个字母字符串(如“ea”、“ou”、“tr”、“str” “...”。
以及带有点击功能的标签,因此预定义的字母会随着每次点击在每个框中随机变化。
我设法在方框中获得单独的预定义单个字母,但找不到在这些方框中获得 2 个连续字母的方法。
任何人都可以帮助我。
结果示例:
consonants vowels consonants
m a p => map
m a rs => mars
m ea n => mean
m ee t => meet
spr i ng => spring
我的 VB-code 到目前为止是:
Public Class VLLK1_2
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rand As New Random
Dim letter As String = "gkmnprstv "
Dim consonant As String = "gkmnprts "
Dim vowel As String = "aei"
letter = letter.Substring(rand.Next(letter.Length), 1)
Box1.Text = letter
vowel = vowel.Substring(rand.Next(vowel.Length), 1)
Box2.Text = vowel
consonant = consonant.Substring(rand.Next(consonant.Length), 1)
Box3.Text = consonant
End Sub
End Class
我不是单词专家,但创建包含您想要学习的单词的列表(字符串)不会像刚才提到的评论那样容易吗?然后 select 随机将每个单词分成 3 部分并将这些部分添加到您的文本框中?
Private rand As New Random
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim ListW As New List(Of String)
ListW.Add("apple")
ListW.Add("pinaple")
ListW.Add("pen")
ListW.Add("orange")
ListW.Add("water")
'select random word from list
Dim randW As String = ListW(rand.Next(0, ListW.Count - 1))
'Dim randW = "pinaple"
'find the integer divider value
Dim div As Integer = randW.Length / 3
'divide the word into 3 parts
Dim leftP As String = Strings.Left(randW, div)
Dim midP As String = Strings.Left(Strings.Mid(randW, div + 1), div)
Dim reminderLenght = randW.Length - (leftP.Length + midP.Length)
Dim rightP As String = Strings.Right(randW, reminderLenght)
'now add the parts to text boxes
tb1.Text = leftP
tb2.Text = midP
tb3.Text = rightP
End Sub
End Class
预览:
尝试用 Visual basic (2015) 为我的孩子制作一个 Windows 应用程序,以帮助他们进行阅读。
制作了 3 个标签(Box1
、Box2
、Box3
),每个标签可以包含 1 个字母,但也可以包含 2 或 3 个字母字符串(如“ea”、“ou”、“tr”、“str” “...”。
以及带有点击功能的标签,因此预定义的字母会随着每次点击在每个框中随机变化。
我设法在方框中获得单独的预定义单个字母,但找不到在这些方框中获得 2 个连续字母的方法。
任何人都可以帮助我。
结果示例:
consonants vowels consonants
m a p => map
m a rs => mars
m ea n => mean
m ee t => meet
spr i ng => spring
我的 VB-code 到目前为止是:
Public Class VLLK1_2
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rand As New Random
Dim letter As String = "gkmnprstv "
Dim consonant As String = "gkmnprts "
Dim vowel As String = "aei"
letter = letter.Substring(rand.Next(letter.Length), 1)
Box1.Text = letter
vowel = vowel.Substring(rand.Next(vowel.Length), 1)
Box2.Text = vowel
consonant = consonant.Substring(rand.Next(consonant.Length), 1)
Box3.Text = consonant
End Sub
End Class
我不是单词专家,但创建包含您想要学习的单词的列表(字符串)不会像刚才提到的评论那样容易吗?然后 select 随机将每个单词分成 3 部分并将这些部分添加到您的文本框中?
Private rand As New Random
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim ListW As New List(Of String)
ListW.Add("apple")
ListW.Add("pinaple")
ListW.Add("pen")
ListW.Add("orange")
ListW.Add("water")
'select random word from list
Dim randW As String = ListW(rand.Next(0, ListW.Count - 1))
'Dim randW = "pinaple"
'find the integer divider value
Dim div As Integer = randW.Length / 3
'divide the word into 3 parts
Dim leftP As String = Strings.Left(randW, div)
Dim midP As String = Strings.Left(Strings.Mid(randW, div + 1), div)
Dim reminderLenght = randW.Length - (leftP.Length + midP.Length)
Dim rightP As String = Strings.Right(randW, reminderLenght)
'now add the parts to text boxes
tb1.Text = leftP
tb2.Text = midP
tb3.Text = rightP
End Sub
End Class
预览: