PowerTools MultiRow for Windows Forms 8.0J
AutoFitWidth プロパティ
使用例 

印刷時にTemplateの幅を用紙の幅に自動的に合わせるかどうかを示す値を取得または設定します。
構文
Public Property AutoFitWidth As Boolean
public bool AutoFitWidth {get; set;}

プロパティ値

テンプレートの幅を用紙の幅に自動的に合わせる場合はtrue。それ以外の場合はfalse。既定値はfalseです。
例外
例外解説
System.ArgumentExceptionPagingModePagingMode.MultiColumnsで、指定された値がtrueです。
解説

Templateの幅がページの幅より小さいまたは大きい場合は、AutoFitWidthを使用して、テンプレートの幅をページの幅に自動的に合わせるかどうかを制御できます。GcMultiRowを一定のズーム倍率でページに印刷する場合は、ZoomFactorプロパティを設定します。

MultiColumnsモードでは、幅の自動調整はサポートされていません。

使用例
次のサンプルコードは、PrintStyle.RichスタイルとPagingMode.Flowを使用してGcMultiRowを印刷する方法を示します。AutoFitWidthプロパティを使用して、テンプレートのサイズがページの幅に合わせて調整されるようにします。このサンプルコードは、GcMultiRow.PrintSettingsに示されている詳細なコード例の一部を抜粋したものです。
void setRichAndFlowButton_Click(object sender, EventArgs e)
{
    Template template1 = CreateTemplate(3, 21);
    AddPrintInfoCellColumnFooterSection(template1, 21);
    this.gcMultiRow1.Template = template1;
    gcMultiRow1.RowCount = 50;

    //The all UI elements will be printed, like UpDown button.
    gcMultiRow1.PrintSettings.PrintStyle = PrintStyle.Rich;
    //The all Rows will be printed from first page to last page one by one.
    gcMultiRow1.PrintSettings.PagingMode = PagingMode.Flow;
    //The GcMultiRow will be aligned by MiddleLeft.
    gcMultiRow1.PrintSettings.Alignment = MultiRowContentAlignment.MiddleLeft;
    //Between every two Rows, there will exist 15 pixels space.
    gcMultiRow1.PrintSettings.SectionMargin = 15;
    //Only the Row from 2th to 8th are printed
    gcMultiRow1.PrintSettings.PrintRange = MultiRowPrintRange.SomeRows;
    gcMultiRow1.PrintSettings.FromRow = 2;
    gcMultiRow1.PrintSettings.ToRow = 8;

    if (flag)
    {
        //The Template's width is less than page's width, set AutoFitWidth to true, the Template will be zoomed out to fit the page's width.
        gcMultiRow1.PrintSettings.AutoFitWidth = true;
        flag = false;
    }
    else
    {
        gcMultiRow1.PrintSettings.AutoFitWidth = false;
        flag = true;
    }
    gcMultiRow1.PrintSettings.ZoomFactor = 1f;
    try
    {
        gcMultiRow1.PrintPreview();
        //If you have a printer, you can execute the following code directly instead code above.
        //gcMultiRow1.Print(true);
    }
    catch (Exception ex)
    {
        // Can't find printer driver.
        MessageBox.Show(ex.Message);
    }
    label.Text = "In Rich style, all elements will be printed, like UpDown button; Between two rows, 15 pixels space existed; Only  the 2th to 8th row are printed one by one from page's Top to Bottom; The GcMultiRow will be aligned by MiddleLeft; (Click the button again to view the AutoFitWidth property's effect)";
}
Private Sub setRichAndFlowButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles setRichAndFlowButton.Click
    Dim template1 As Template = CreateTemplate(3, 21)
    AddPrintInfoCellColumnFooterSection(template1, 21)
    Me.gcMultiRow1.Template = template1
    gcMultiRow1.RowCount = 50

    'The all UI elements will be printed, like UpDown button.
    gcMultiRow1.PrintSettings.PrintStyle = PrintStyle.Rich
    'The all Rows will be printed from first page to last page one by one.
    gcMultiRow1.PrintSettings.PagingMode = PagingMode.Flow
    'The GcMultiRow will be aligned by MiddleLeft.
    gcMultiRow1.PrintSettings.Alignment = MultiRowContentAlignment.MiddleLeft
    'Between every two Rows, there will exist 15 pixels space.
    gcMultiRow1.PrintSettings.SectionMargin = 15
    'Only the Row from 2th to 8th are printed
    gcMultiRow1.PrintSettings.PrintRange = MultiRowPrintRange.SomeRows
    gcMultiRow1.PrintSettings.FromRow = 2
    gcMultiRow1.PrintSettings.ToRow = 8

    If flag Then
        'The Template's width is less than page's width, set AutoFitWidth to true, the Template will be zoomed out to fit the page's width.
        gcMultiRow1.PrintSettings.AutoFitWidth = True
        flag = False
    Else
        gcMultiRow1.PrintSettings.AutoFitWidth = False
        flag = True
    End If
    gcMultiRow1.PrintSettings.ZoomFactor = 1.0F
    Try
        'If you have a printer, you can execute the following code directly instead code above.
        'gcMultiRow1.Print(true);
        gcMultiRow1.PrintPreview()
    Catch ex As Exception
        ' Can't find printer driver.
        MessageBox.Show(ex.Message)
    End Try
    label.Text = "In Rich style, all elements will be printed, like UpDown button; Between two rows, 15 pixels space existed; Only  the 2th to 8th row are printed one by one from page's Top to Bottom; The GcMultiRow will be aligned by MiddleLeft; (Click the button again to view the AutoFitWidth property's effect)"
End Sub
参照

PrintSettings クラス
PrintSettings メンバ
ZoomFactor プロパティ
PagingMode プロパティ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.