【发布时间】:2016-01-29 02:13:40
【问题描述】:
我正在尝试为富文本框控件制作一个简单的行计数器。现在,我在框的左侧有一个标签,使用以下代码:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label2.Text = RichTextBox1.Lines.Count()
End Sub
这很好用。与按钮相同,它只会更新数字。我遇到的问题是使用此代码:
Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
Label2.Text = Label2.Text + RichTextBox1.Lines.Count() + Environment.NewLine
我明白了:
Microsoft.VisualBasic.dll 中出现“System.InvalidCastException”类型的未处理异常
附加信息:从字符串“转换”
" 输入 'Double' 无效。
有什么办法吗?谢谢
【问题讨论】:
-
RichTextBox1.Lines.Count()返回一个数字,+用于加法,因此您尝试添加“某物”+ 42 +。使用“&”进行字符串连接, .ToString使用Count()打开 Option Strict - 第一个块也需要 -
可能还值得注意的是,这种设计方式,每次你输入一个字母时,标签都会附加一个带有行数的新行。我不确定这是否是预期的结果(对我来说似乎有点奇怪),但如果这不是你想要的,你可以尝试先清除标签的文本。在将文本分配给行数之前,只需添加
Label2.Text = ""即可清除文本。 -
谢谢!有没有办法检查富文本框中的行数,并将标签设置为那么多换行符?例如,每次更改时,检查行,而不是添加新行(因为您可以退格一行),而是检查行并为其设置标签?我认为您可以为行数设置一个变量,然后将每个数字拆分并为每个数字创建一个新行。有没有更简单的方法?
-
Label2.Text = RichTextBox1.Lines.Count.ToString()
标签: vb.net visual-studio