Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在richtextbox中为vb.net中的多种字体设置选择字体大小_Vb.net_Richtextbox - Fatal编程技术网

在richtextbox中为vb.net中的多种字体设置选择字体大小

在richtextbox中为vb.net中的多种字体设置选择字体大小,vb.net,richtextbox,Vb.net,Richtextbox,我想在richtextbox中使用组合框更改字体大小如果我们使用此代码在选择文本中有一种字体,那么更改字体大小很容易 RichTextBox1.SelectionFont = New Font(SelectionFont.FontFamily, CInt(ToolStripComboBox3.Text), RichTextBox1.SelectionFont.Style) 但是如果我们选择了多种字体,它就不起作用了。我有另一个代码来解决这个问题。但这段代码的唯一问题是,它适用于少于2000个字

我想在richtextbox中使用组合框更改字体大小如果我们使用此代码在选择文本中有一种字体,那么更改字体大小很容易

RichTextBox1.SelectionFont = New Font(SelectionFont.FontFamily, CInt(ToolStripComboBox3.Text), RichTextBox1.SelectionFont.Style)
但是如果我们选择了多种字体,它就不起作用了。我有另一个代码来解决这个问题。但这段代码的唯一问题是,它适用于少于2000个字符,但当选择文本较大时,它就一文不值了。代码如下。任何帮助

 Public rtbTemp As New RichTextBox()
    Public Sub ChangeFontSize(ByVal rtb As RichTextBox, ByVal fontSize As Single)
        'This method should handle cases that occur when multiple fonts/styles are selected
        ' Parameters:-
        ' fontSize - the fontsize to be applied, eg 33.5
        If fontSize <= 0.0 Then
            Throw New System.InvalidProgramException("Invalid font size parameter to ChangeFontSize")
        End If
        Dim rtb1start As Integer = rtb.SelectionStart
        Dim len As Integer = rtb.SelectionLength
        Dim rtbTempStart As Integer = 0
        ' If len <= 1 and there is a selection font, amend and return
        If len <= 1 AndAlso rtb.SelectionFont IsNot Nothing Then
            rtb.SelectionFont = New Font(rtb.SelectionFont.FontFamily, fontSize, rtb.SelectionFont.Style)
            Return
        End If
        ' Step through the selected text one char at a time
        rtbTemp.Rtf = rtb.SelectedRtf
        For i As Integer = 0 To len - 1
            rtbTemp.[Select](rtbTempStart + i, 1)
            rtbTemp.SelectionFont = New Font(rtbTemp.SelectionFont.FontFamily, fontSize, rtbTemp.SelectionFont.Style)
        Next

        ' Replace & reselect
        rtbTemp.[Select](rtbTempStart, len)
        rtb.SelectedRtf = rtbTemp.SelectedRtf
        rtb.[Select](rtb1start, len)
        Return
    End Sub
代码如下: 字体大小组合框的Xaml:

            <ComboBox Width="50" Name="FontsSizeCombo" FontSize="12" ItemsSource="{Binding}">
                <ComboBoxItem Content="8"/>
                <ComboBoxItem Content="9" />
                <ComboBoxItem Content="10" />
                <ComboBoxItem Content="11" />
                <ComboBoxItem Content="12" />
                <ComboBoxItem Content="14" />
                <ComboBoxItem Content="16" />
                <ComboBoxItem Content="18" />
                <ComboBoxItem Content="22" />
                <ComboBoxItem Content="24" />
                <ComboBoxItem Content="26" />
                <ComboBoxItem Content="36" />
                <ComboBoxItem Content="48" />
                <ComboBoxItem Content="72" />
            </ComboBox>

mainRtb是我的富文本框。请检查这个答案是否正确。谢谢。

错误:所选内容不是System.Windows.Forms.RichTextBox的成员。我使用VB2008 Expression,它需要framework 3.5,我在framework 2.0中工作,希望有其他解决方案。目前,移动到更高的.net是一个好选择,这只是我的意见。.net framework 2只有20 MB,3.5是300 MB,我的应用程序大小只有1MB或更小,谁为我的应用程序安装了300MB?这还不能回答问题吗?
Private Sub FontsSizeCombo_DropDownClosed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FontsSizeCombo.DropDownClosed
    mainRTB.Selection.ApplyPropertyValue(RichTextBox.FontSizeProperty, FontsSizeCombo.Text)
End Sub