GrapeCity PlusPak for Windows Forms 11.0J
ユーザー定義のリサイズポリシー

任意のコントロールに対して、ユーザー定義のリサイズポリシーを作成して適用できます。ここでは、ListView コントロールに対するリサイズポリシーの作成方法について説明します。

リサイズポリシーの作成

ユーザー定義のリサイズポリシーの作成

ResizePolicy クラスを継承して独自のリサイズポリシーを作成することができます。

次のコードは、ResizePolicy クラスを継承するユーザー定義の ListView のリサイズポリシーです。
Imports GrapeCity.Win.Components

Public Class CostomListViewResizePolicy
    Inherits ResizePolicy
    Public Overrides Function CanResize(ctl As Control) As Boolean
        Return TypeOf ctl Is ListView
    End Function

    Public Overrides ReadOnly Property TargetType() As Type
        Get
            Return GetType(ListView)
        End Get
    End Property

    Public Overrides Sub ResizeLayout(ctl As Control, infos As ResizeLayoutInfo)
        Dim listView = TryCast(ctl, ListView)
        listView.SuspendLayout()
        If listView.Columns.Count > 0 Then
            For Each column As ColumnHeader In listView.Columns
                column.Width = infos.ScaleX(column.Width)
            Next
        End If
        listView.ResumeLayout(True)
        MyBase.ResizeLayout(ctl, infos)
    End Sub
End Class
using GrapeCity.Win.Components;

public class CostomListViewResizePolicy : ResizePolicy
{
    public override bool CanResize(Control ctl)
    {
        return ctl is ListView;
    }

    public override Type TargetType
    {
        get
        {
            return typeof(ListView);
        }
    }

    public override void ResizeLayout(Control ctl, ResizeLayoutInfo infos)
    {
        var listView = ctl as ListView;

        listView.SuspendLayout();
        if (listView.Columns.Count > 0)
        {
            foreach (ColumnHeader column in listView.Columns)
            {
                column.Width = infos.ScaleX(column.Width);
            }
        }
        listView.ResumeLayout(true);
        base.ResizeLayout(ctl, infos);
    }
}

ユーザー定義のリサイズポリシーの設定

ユーザー定義のリサイズポリシーは、ResizePolicy コレクション エディターで設定できます。
ユーザー定義のリサイズポリシークラスを作成してプロジェクトをビルドすると、ResizePolicy コレクション エディターの[カスタムポリシーの追加]のドロップダウンリストにユーザー定義のリサイズポリシーが表示されます。



このドロップダウンリストからユーザー定義のリサイズポリシーを選択すると[メンバー]リストに追加されます。



  • ユーザー定義のリサイズポリシーが1つしか存在しない場合はドロップダウンリストは表示されません。この場合、[カスタムポリシーの追加]ボタンをクリックするとユーザー定義のリサイズポリシーが[メンバー]リストに追加されます。

コーディングによる設定

次のコードは、ユーザー定義のリサイズポリシーを GcResizeの ResizePolicies プロパティに設定します。

GcResize1.ResizePolicies.Add(New CostomListViewResizePolicy())
gcResize1.ResizePolicies.Add(new CostomListViewResizePolicy());

関連トピック

 

 


© 2008 GrapeCity inc. All rights reserved.