对VB中的richtextbox的单个字进行颜色设置应怎样呢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对VB中的richtextbox的单个字进行颜色设置应怎样呢相关的知识,希望对你有一定的参考价值。
这个简单。这个要与commonDialog控件一起使用。
比如你设置了一个菜单栏。有一项就是“颜色”。关键字为color。
Private Sub color_Click()
commonDialog1.DialogTitle = "颜色设置"
commonDialog1.Flags = 1
commonDialog1.ShowColor
richtextbox1.SelColor = cd1.Color
End Sub
这段代码就是调用了commondialog控件,就是通用对话框的颜色设置。
你说的对单个字进行设置,就是对鼠标所选文字进行设置。
这样就ok了。。
o(∩_∩)o... 参考技术A 呵呵..
比如你想让第5个字变成红色的..
Private Sub Command1_Click()
RichTextBox1.SelStart = 4 '记得是从0开始的.所以5就是4了..
RichTextBox1.SelLength = 1
RichTextBox1.SelColor = vbRed
End Sub
在 vb.net 中调整 RichTextBox 的字体样式
【中文标题】在 vb.net 中调整 RichTextBox 的字体样式【英文标题】:Adjusting font style for a RichTextBox in vb.net 【发布时间】:2012-01-26 15:03:23 【问题描述】:我在调整 RichTextBox 中的字体样式时遇到了麻烦,我已经看到了一些不同的方法来讨论单个属性(比如切换粗体和关闭)......但我正在努力做到这一点我的字体类可以调整 any 属性(粗体、斜体、下划线)。
我知道 Font.Style 是一组布尔标志(位域?)...但我不确定如何同时处理所有属性。
麻烦的代码如下:
Public Sub ModifyFontStyle(Optional ByVal Plain As Object = Nothing, Optional ByVal Bold As Object = Nothing, _
Optional ByVal Italics As Object = Nothing, Optional ByVal Underlined As Object = Nothing)
Dim newFontStyle As System.Drawing.FontStyle
If Plain Then
newFontStyle = Drawing.FontStyle.Regular
GivenFont = New Drawing.Font(GivenFont.FontFamily, GivenFont.Size, newFontStyle)
Exit Sub
End If
If Bold IsNot Nothing Then
If Bold Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Bold
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Bold
End If
End If
If Italics IsNot Nothing Then
If Italics Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Italic
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Italic
End If
End If
If Underlined IsNot Nothing Then
If Underlined Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Underline
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Underline
End If
End If
GivenFont = New Drawing.Font(GivenFont.FontFamily, GivenFont.Size, newFontStyle)
End Sub
这是这段代码的最终问题:
我切换粗体(设置为 true) - 文本变为粗体。 我切换下划线 - 文本现在是粗体和下划线。 我切换斜体 - 文本现在是粗体、下划线和斜体。 我再次切换粗体(设置为 false) - 文本现在是删除线。字体发生了什么变化?文本应加下划线,斜体不得删除线...
这是我的逻辑错误还是简单的误解?
好吧,感谢您抽出宝贵时间,我会继续修改它,直到它起作用或者我得到一个有效的答案,
【问题讨论】:
我想出了我需要做的事情:检查我正在调整的特定属性并阻止它多次添加到字体样式中。稍后我会发布这个问题的答案。 标志被移除,请参考FAQ。 【参考方案1】:您使用了错误的运算符。它们确实类似于位标志,枚举具有 [Flags] 属性。您需要使用 Or 运算符打开样式,使用 And 运算符关闭样式。像这样:
Dim style = Me.Font.Style
'--- turn bold on
style = style Or FontStyle.Bold
'--- turn bold off
style = style And Not FontStyle.Bold
【讨论】:
【参考方案2】:嗯,我明白了。我已经让它成功运行了。
Public Sub ModifyFontStyle(Optional ByVal Plain As Object = Nothing, Optional ByVal Bold As Object = Nothing, _
Optional ByVal Italics As Object = Nothing, Optional ByVal Underlined As Object = Nothing)
Dim newFontStyle As System.Drawing.FontStyle
If Plain Then
newFontStyle = Drawing.FontStyle.Regular
GivenFont = New Drawing.Font(GivenFont.FontFamily, GivenFont.Size, newFontStyle)
Exit Sub
End If
If Bold IsNot Nothing Then
If Bold And Not GivenFont.Bold Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Bold
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Bold
End If
End If
If Italics IsNot Nothing Then
If Italics And Not GivenFont.Italic Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Italic
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Italic
End If
End If
If Underlined IsNot Nothing Then
If Underlined And Not GivenFont.Underline Then
newFontStyle = GivenFont.Style + Drawing.FontStyle.Underline
Else
newFontStyle = GivenFont.Style - Drawing.FontStyle.Underline
End If
End If
GivenFont = New Drawing.Font(GivenFont.FontFamily, GivenFont.Size, newFontStyle)
End Sub
感谢您的宝贵时间!
【讨论】:
以上是关于对VB中的richtextbox的单个字进行颜色设置应怎样呢的主要内容,如果未能解决你的问题,请参考以下文章
十万火急!VB6.0中的RichTextBox文本如何设置出现滚动条!!!
在 VB6 RichTextBox 中创建文本部分的格式颜色
VB6.0中如何使得一个字符串中的某一个字符选中高亮并使这个字符字体变大。