リサイズポリシーの作成
ユーザー定義のリサイズポリシーの作成
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 コレクション エディターの[カスタムポリシーの追加]のドロップダウンリストにユーザー定義のリサイズポリシーが表示されます。
このドロップダウンリストからユーザー定義のリサイズポリシーを選択すると[メンバー]リストに追加されます。
|
コーディングによる設定
次のコードは、ユーザー定義のリサイズポリシーを GcResizeの ResizePolicies プロパティに設定します。GcResize1.ResizePolicies.Add(New CostomListViewResizePolicy())
gcResize1.ResizePolicies.Add(new CostomListViewResizePolicy());