none
傳入電腦已安裝的字型問題 RRS feed

  • 問題

  • 1.我在表單內插入工具列(ToolStrip)

    2.在工具列內建立一個ToolStripComboBox控制項。

    3.請問,要怎麼做才能將作業系統中已安裝的字型項目,傳入ToolStripComboBox做為選項。目的是要按ToolStripComboBox可以選取字型。

     

    敬請指導....謝謝。

    2007年6月20日 下午 03:20

解答

所有回覆

  • ComboBox 這樣做,ToolStripComboBox 應該也差不多吧:

    Code Snippet

    Dim fntName As Drawing.FontFamily
     For Each fntName In Drawing.FontFamily.Families
       ComboBox.Add(fntName.Name)

    Next

     

     

    2007年6月20日 下午 03:49
    版主
  • 感謝指導...

    1. Add非ToolStripComboBox成員,因此無法使用。

    2.Drawing.FontFamily 無法取得作業系統已安裝字型。

    敬請再指導...謝謝。

    2007年6月20日 下午 04:45
  • :::

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim installedFontCollection As New System.Drawing.Text.InstalledFontCollection()
            Dim fontFamilies() As FontFamily = installedFontCollection.Families

            For i As Integer = 0 To fontFamilies.Length - 1
                ToolStripComboBox1.Items.Add(fontFamilies(i).Name)
            Next
        End Sub

    2007年6月21日 上午 01:34
  • 感謝啦....問題已解決。

     

    另外再請問:

    1.Font 建構函式有13用法,其中我一直試不出哪種方法,可保有選取中之字型,單純只要改變字型大小。

    2.Font (FontFamily, Single)函式似乎可以做,但FontFamily部份,該如何設定才能保有選取中之字型

     

    敬請再指導。謝謝。

    2007年6月21日 上午 03:04
  • 持續在 SelectedIndexChanged  事件中取得選擇的字串,再呼叫

    FontName = ToolStripComboBox.Text

    New Font(FontName, FontSize)

    2007年6月21日 上午 03:31
    版主
  • 感謝指導....

     

    下列是我的程式碼:

    Dim NewSize As Integer = CByte(ToolStripComboBox3.SelectedItem)
       '宣告NewSize為整數變數,其值為ComboBox1內的選項值,CByte用於將文數字轉為整數數字。
      Dim currentFont As System.Drawing.Font = RichTextBox1.SelectionFont
            '設定currentFont為目前選取字串的字型

    Try
                RichTextBox1.SelectionFont = New Font(currentFont.FontFamily, NewSize)
                '維持使用選取中的字型,但改變字型大小
      Catch ex As Exception
                MsgBox(ex.ToString)
      End Try

     

    1.上例程試碼使用RichTextBox1.SelectionFont傳回被選取文字的字型。

    2. New Font(currentFont.FontFamily, NewSize)則可改變字型大小。

    3.糟糕....當選取的字串含有兩種以上的字型時,就會引發錯誤。

    4.其實,若能告訴我,目前我們大家在使用的這個「回覆」編輯器內的「字型大小」的程式碼,是怎麼寫的,應該就能解除問題。

     

    敬請再指導。謝謝。



     

    2007年6月21日 上午 03:51
  • Dear Sir

    我記得在不久之前有討論過,下面這一篇

    http://forums.microsoft.com/msdn-cht/ShowPost.aspx?PostID=1633034&SiteID=14

    當選取範圍中有兩種以上的字型的話會是Nothing因而產生錯誤;您應該可以參考看看codeproject裡面那個sample。

    2007年6月21日 上午 06:14
    版主
  • 謝謝您,辛苦了。
    2007年6月21日 上午 08:11