我试图将秒数放入2个文本框中,每个数字合为一个。示例x = 56 x1 = 5和x2 = 6
' s = TimeOfDay.Second
TextBox15.Text = s.Substring(0, 1)
TextBox16.Text = s.Substring(1, 1)'
尝试此操作时,出现以下错误:System.ArgumentOutOfRangeException
有想法该怎么解决这个吗?
答案 0 :(得分:0)
每次尝试获取给定位置不存在的字符时,都会发生ArgumentOutOfRange异常。因此发生的情况是,位置0处没有字符串,长度为1,位置1处没有字符串,长度为1。
为防止这种情况,请添加一个简单的If / Then语句以检查原始String的长度是否至少等于字符的位置。另外,由于只需要一个字母,因此只需将字符放在所需的String索引处即可。
这是一个简单的例子:
If s.Length >= 1 Then
TextBox15.Text = s(0).ToString()
End If
If s.Length >= 2 Then
TextBox16.Text = s(1).ToString()
End If
提琴:Live Demo
答案 1 :(得分:0)
获取数字之前,您不需要将其转换为字符串,只需进行数学运算就可以了:
Dim rightNow = DateTime.Now
TextBox15.Text = (rightNow.Second \ 10).ToString()
TextBox16.Text = (rightNow.Second Mod 10).ToString()
答案 2 :(得分:0)
另一种方法。
Dim c() As Char = DateTime.Now.Second.ToString("00").ToArray
TextBox1.Text = c(0)
TextBox2.Text = c(1)