GrapeCity MultiRow for Windows Forms 11.0J
フォントの設定と取得

GcFontPickerCellのフォントの設定と取得方法について、以下に解説します。
エディタの入力
GcFontPickerCellのエディタに直接、フォントの名前を入力することができます。入力された内容が既知のフォント名に一致する場合、セルが自動的に有効な値に変換します。そして、AutoCompleteModeプロパティを利用して入力動作を補助することが可能です。
  • GcFontPickerCellのエディタに値を入力するにはDropDownStyleプロパティにDropDownを設定する必要があります。

AutoCompleteModeの値 説明
None 入力中に内容を自動的に補完しません。入力した内容が有効なフォントの名前の場合、フォーカスがセルから離れたとき、Valueプロパティの値として確定されます。
Suggest 入力中の内容がフォント一覧の項目に前方一致する場合、ドロップダウンリストを開き該当のフォント項目を選択します。
Append 入力中の内容がフォント一覧の項目に前方一致する場合、該当のフォント項目をエディタに未確定の候補として表示します。
SuggestAppend 入力中の内容がフォント一覧の項目に前方一致する場合、ドロップダウンリストを開き該当のフォント項目を選択し、なおかつエディタに未確定の候補として表示します。

入力されたフォントの名前が有効でない場合は、Valueプロパティはクリアされます。
ドロップダウンリストから選択
セルのドロップダウンボタンからリストを表示し、フォント一覧から選択することができます。リストには、お気に入りのフォント、最近使用したフォントを表示または非表示するようにカスタマイズすることが可能です。

ドロップダウンリストのカスタマイズについては、「セルのカスタマイズ」をご参照ください。
フォントのフィルタリング
ItemFilterプロパティを使用して、GcFontPickerCellで表示するフォントの対象を絞ることができます。フィルタリングの方法には、文字セット(CharSetsプロパティ)による方法と、フォントタイプ(FontTypesプロパティ)による方法があります。二つの方法を同時に使用してフィルタリングすることも可能です。

文字セットによる方法では、FontCharSet列挙体で定義されているさまざまな文字セット(日本語、中国語、韓国語、西ヨーロッパなど)を選択してフィルタリングすることができます。フォントタイプによる方法では、FilterFontTypes列挙体で定義されているフォントの種類(通常フォント、記号フォント、TrueTypeフォント、OpenTypeフォントなど)を選択してフィルタリングすることができます。いずれの方法でも、複数の選択が可能です。

ItemFilterを設定するには、プロパティウィンドウでItemFilterプロパティを展開してサブプロパティのCharSetsFontTypesを設定します。

文字セットでフィルタリングの例

  1. プロパティウィンドウで、ItemFilter.CharSetsプロパティを選択してコントロールに表示したい文字セット(日本語)を選択します。

  2. 実行時に、日本語フォントだけがドロップダウンリストに表示されます。

フォントタイプでフィルタリングの例

  1. プロパティウィンドウで、ItemFilter.FontTypesプロパティを選択してセルに表示したいフォントの種類(記号フォント)を選択します。

  2. 実行時に、シンボルフォントだけがドロップダウンリストに表示されます。

選択したフォントの取得
セルで選択されたフォントを取得するには、GcFontPickerEditingControl.SelectedFontInfoプロパティを使用します。Valueプロパティを使用します。GcMultiRow.CellValueChangedイベントを使用すると、選択されたフォントが変わったときの値を取得することができます。

次のコードは、GcFontPickerCellで選択したフォントをRichTextBoxで選択されている文字に設定します。 
Imports GrapeCity.Win.MultiRow
Imports PlusPakCell = GrapeCity.Win.MultiRow.PlusPak

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim GcFontPickerCell1 As New PlusPakCell.GcFontPickerCell()

    GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcFontPickerCell1})
    GcMultiRow1.RowCount = 10
End Sub

Private Sub GcMultiRow1_EditingControlShowing(ByVal sender As Object, ByVal e As GrapeCity.Win.MultiRow.EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
    Dim GcFontPickerCell As PlusPakCell.GcFontPickerEditingControl = TryCast(e.Control, PlusPakCell.GcFontPickerEditingControl)
    If GcFontPickerCell IsNot Nothing Then
        RemoveHandler GcFontPickerCell.FontChanged, AddressOf Me.Editor_FontChanged
        AddHandler GcFontPickerCell.FontChanged, AddressOf Me.Editor_FontChanged
    End If
End Sub

Private Sub Editor_FontChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GcFontPicker1.FontChanged
    Dim GcFontPickerCell As GrapeCity.Win.Pickers.GcFontPicker = DirectCast(sender, GrapeCity.Win.Pickers.GcFontPicker)

    ' GcFontPickerCellで選んだフォントをRichTextBoxの選択された文字に設定する(12ポイントサイズ) 
    RichTextBox1.SelectionFont = GcFontPickerCell.SelectedFontInfo.ToFont(12)
End Sub
using GrapeCity.Win.MultiRow;
using PlusPakCell = GrapeCity.Win.MultiRow.PlusPak;

private void Form7_Load(object sender, EventArgs e)
{
    PlusPakCell.GcFontPickerCell gcFontPickerCell1 = new PlusPakCell.GcFontPickerCell();

    gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcFontPickerCell1 });
    gcMultiRow1.RowCount = 10;

    gcMultiRow1.EditingControlShowing += new EventHandler<EditingControlShowingEventArgs>(gcMultiRow1_EditingControlShowing);
}

private void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
{
    PlusPakCell.GcFontPickerEditingControl editor  = (e.Control as  PlusPakCell.GcFontPickerEditingControl);

    if (editor != null)
    {
        editor.SelectedFontChanged -= new EventHandler(editor_SelectedFontChanged);
        editor.SelectedFontChanged += new EventHandler(editor_SelectedFontChanged);
    }
}

private void editor_SelectedFontChanged(object sender, EventArgs e)
{
    GrapeCity.Win.Pickers.GcFontPicker gcFontPickerCell  = (sender as GrapeCity.Win.Pickers.GcFontPicker);

    // gcFontPickerCellで選んだフォントをRichTextBoxの選択された文字に設定する(12ポイントサイズ) 
    richTextBox1.SelectionFont = gcFontPickerCell.SelectedFontInfo.ToFont(12);
}

   
関連トピック

 

 


© 2008 GrapeCity inc. All rights reserved.