我正在尝试为RichTextBox更改VB.NET中的字体系列
我试着在google甚至特定的站点上搜索代码问题。毫无办法。
这些是更改FontFamily的代码(它是一个工具条组合按钮)
Private Sub TscFontFamily_TextChanged(sender As Object, e As EventArgs) Handles tscFontFamily.TextChanged
rtbContent.SelectionFont = New Font(Convert.ToString(tscFontFamily.Text), Convert.ToInt32(tscFontSize.Text))
End Sub
和FontSize (也是工具条组合按钮)
Private Sub tscFontSize_TextChanged(sender As Object, e As EventArgs) Handles tscFontSize.TextChanged
Dim newSize As Single = Convert.ToSingle(tscFontSize.Text)
rtbContent.SelectionFont = New Font(rtbContent.SelectionFont.FontFamily, newSize)
End Sub
我希望这是可行的,因为它是有意义的,对吧?但是它显示“输入字符串的格式不正确”,并且如果我删除Convert.ToString和其他转换代码,它会显示类似于“从字符串到类型'Single‘的转换是无效的。”
另外值得一提的是,我实际上已经尝试过Convert.ToString和Convert.ToDouble,基本上这两种语言都适用。
发布于 2019-08-05 21:59:02
不需要在tscFontFamily.Text
上调用ToString,因为文本属性返回一个字符串;您实际上是说从这个字符串值返回一个字符串值。
Convert.ToInt32是一种将字符串值转换为Int32 (又称整数)值的快速而肮脏的方法。如果你依赖于用户的输入,那么你几乎总是应该使用Int32.TryParse。此方法根据输入的转换是否成功以及传递的第二个参数是否为引用变量返回一个布尔值,因此如果该方法的结果为True,则第二个参数包含转换后的值。但是,看起来您需要的是单个值,在这种情况下,您实际上应该使用Single.TryParse。
下面是一个将更改应用到代码的示例:
Private Sub tscFontSize_TextChanged(sender As Object, e As EventArgs) Handles tscFontSize.TextChanged
Dim newSize As Single
If Single.TryParse(tscFontSize.Text, newSize) Then
rtbContent.SelectionFont = New Font(rtbContent.SelectionFont.FontFamily, newSize)
End If
End Sub
https://stackoverflow.com/questions/57359801
复制相似问题