从组合框中获取字体并将其应用于richtextbox(vb.net)

时间:2009-08-18 06:50:35

标签: vb.net combobox fonts

我正在构建一个带有额外功能的字垫克隆。我试图获得两个组合框(一个具有字体名称,另一个具有字体大小)以将其选定的属性应用于richtextbox中的选定文本。这是我最近的尝试,我想我已经开始接近了,但是我仍然收到InvalidCastException的错误 - 从字符串“”到“Integer”类型的转换无效。

Private Sub FontToolStripComboBox_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles FontToolStripComboBox.DropDownClosed
    Dim ComboFonts As System.Drawing.Font
    ComboFonts = Pad.SelectionFont
    Pad.SelectionFont = New System.Drawing.Font(ComboFonts.Name(FontToolStripComboBox.SelectedText), Font.Size, Font.Style) '<--- this line is giving the exception for the FontToolStripComboBox.SelectedText entry'
    End Sub

我无法弄清楚如何使用组合框中的字符串和字体名称来实际将字体更改为该名称。

2 个答案:

答案 0 :(得分:1)

试试这个。 DropDownClosed事件一直留下一个字体。此外,您应该在某处指定大小和样式。 (也许这已经在你的功能之外完成了吗?)

Private Sub FontToolStripComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles FontToolStripComboBox.SelectedIndexChanged
  Dim ComboFonts As System.Drawing.Font
  ComboFonts = pad.SelectionFont
  pad.SelectionFont = New System.Drawing.Font(FontToolStripComboBox.Text, pad.SelectionFont.Size, pad.SelectionFont.Style)
End Sub

答案 1 :(得分:0)

替换此

FontToolStripComboBox.SelectedText

用这个

FontToolStripComboBox.text

编辑: 因为SelectedText表示在ComboBox的可编辑部分中选择的文本 检查SelectedText at MSDN

编辑:

尝试更换:

 Pad.SelectionFont = New System.Drawing.Font(ComboFonts.Name(FontToolStripComboBox.SelectedText), Font.Size, Font.Style)

使用:

Pad.SelectionFont = New System.Drawing.Font(FontToolStripComboBox.Text, Font.Size, Font.Style)