在我开始解释我的问题之前,我想说清楚我不是编程专家,也不是我自称是伟大的,我只是为了好玩而制作了一个VB程序
现在......问题......所以我制作了这个程序,它将文本转换成Discord表情符号文本,解决方案似乎功能正常,因为它应该没有问题,直到我在上面的两行代码文本转换部分,因为当我这样做时,程序输出错误和混乱的文本,有时它会将2个字母转换成数千个字母,我无法弄清楚为什么,有时会冻结,然后显示OutofMemory异常
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox1.Text = TextBox1.Text.Replace("a", ":regional_indicator_a: ")
TextBox1.Text = TextBox1.Text.Replace("b", ":regional_indicator_b: ")
TextBox1.Text = TextBox1.Text.Replace("c", ":regional_indicator_c: ")
Form3.Refresh()
Form3.Show()
Form3.TextBox1.Text = TextBox1.Text
End Sub
答案 0 :(得分:0)
你正在为第一个替换后的每个替换上做一个无意的嵌套循环,因为每一行都试图替换在前一行上已经改变的文本。
尝试更改像这样的文本字符,因为它是单个条目的字符替换。
Dim out = ""
For Each c As Char In TextBox1.Text
out += ":regional_indicator_" + c + ": "
Next
TextBox1.Text = out
最后一行改变了TextBox1.Text
本身,如果你想把" out"到其他地方,改变那条线。
顺便说一下,我不知道为什么你再次尝试Refresh()
和Show()
表单,但是如果你必须这样做,那么在文本框分配之后再放这两行,而不是之前