PowerTools PlusPak for Windows Forms 8.0J
ResizePolicy クラス
メンバ  使用例 

サイズ変更ポリシーの基本クラスを実装します。このクラスは 抽象 (Visual BasicではMustInherit) クラスなので、インスタンス化できません。
構文
Public MustInherit Class ResizePolicy 
public abstract class ResizePolicy 
解説
ResizePolicy は、ユーザーが複雑なコントロールのサイズ変更ポリシーをカスタマイズできるようにするためのサイズ変更情報を提供する抽象クラスです。FlexGridResizePolicy などの特定の ResizePolicy を記述する場合は、ResizePolicy を継承する必要があります。
使用例

次のサンプルコードは、System.Windows.Forms.ListView のサイズ変更ポリシーを実装する方法を示します。また、ControlResizing または GrapeCity.Win.Containers.GcResizePanel.ControlResizing にイベントハンドラをアタッチすることによってコントロールのサイズ変更動作を処理することもできます。

public class GcResizeResizePolicyDemo : Form
{
    private Components.GcResize gcResize1;
    private ListView listView1;
    private IContainer components;

    public GcResizeResizePolicyDemo()
    {
        InitializeComponent();

        // Set the view to show details.
        listView1.View = View.Details;
        // Allow the user to edit item text.
        listView1.LabelEdit = true;
        // Allow the user to rearrange columns.
        listView1.AllowColumnReorder = true;
        // Display check boxes.
        listView1.CheckBoxes = true;
        // Select the item and subitems when selection is made.
        listView1.FullRowSelect = true;
        // Display grid lines.
        listView1.GridLines = true;
        // Sort the items in the list in ascending order.
        listView1.Sorting = SortOrder.Ascending;

        // Create three items and three sets of subitems for each item.
        ListViewItem item1 = new ListViewItem("item1", 0);
        // Place a check mark next to the item.
        item1.Checked = true;
        item1.SubItems.Add("1");
        item1.SubItems.Add("2");
        item1.SubItems.Add("3");
        ListViewItem item2 = new ListViewItem("item2", 1);
        item2.SubItems.Add("4");
        item2.SubItems.Add("5");
        item2.SubItems.Add("6");
        ListViewItem item3 = new ListViewItem("item3", 0);
        // Place a check mark next to the item.
        item3.Checked = true;
        item3.SubItems.Add("7");
        item3.SubItems.Add("8");
        item3.SubItems.Add("9");

        // Create columns for the items and subitems. // Width of -2 indicates auto-size.
        listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);

        //Add the items to the ListView.
        listView1.Items.AddRange(new ListViewItem[] { item1, item2, item3 });
    }

    private void InitializeComponent()
    {
        this.components = new Container();
        MyListViewResizePolicy myListViewResizePolicy1 =
            new MyListViewResizePolicy();
        this.gcResize1 = new Components.GcResize(this.components);
        this.listView1 = new ListView();
        ((ISupportInitialize)(this.gcResize1)).BeginInit();
        this.SuspendLayout();
        // 
        // gcResize1
        // 
        this.gcResize1.ResizePolicies.Add(myListViewResizePolicy1);
        this.gcResize1.Target = this;
        // 
        // listView1
        // 
        this.listView1.CheckBoxes = true;
        this.listView1.Location = new Point(15, 26);
        this.listView1.Name = "listView1";
        this.listView1.Size = new Size(229, 185);
        this.listView1.TabIndex = 0;
        this.listView1.UseCompatibleStateImageBehavior = false;
        // 
        // GcResize
        // 
        this.ClientSize = new Size(284, 261);
        this.Controls.Add(this.listView1);
        this.Name = "GcResizeResizePolicyDemo";
        ((ISupportInitialize)(this.gcResize1)).EndInit();
        this.ResumeLayout(false);

    }

    [STAThread]
    public static void Main(string[] args)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new GcResizeResizePolicyDemo());
    }
}

public class MyListViewResizePolicy : 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);
    }
}
Public Class GcResizeResizePolicyDemo
    Inherits Form
    Private gcResize1 As Components.GcResize
    Private listView1 As ListView
    Private components As IContainer

    Public Sub New()
        InitializeComponent()

        ' Set the view to show details.
        listView1.View = View.Details
        ' Allow the user to edit item text.
        listView1.LabelEdit = True
        ' Allow the user to rearrange columns.
        listView1.AllowColumnReorder = True
        ' Display check boxes.
        listView1.CheckBoxes = True
        ' Select the item and subitems when selection is made.
        listView1.FullRowSelect = True
        ' Display grid lines.
        listView1.GridLines = True
        ' Sort the items in the list in ascending order.
        listView1.Sorting = SortOrder.Ascending

        ' Create three items and three sets of subitems for each item.
        Dim item1 As New ListViewItem("item1", 0)
        ' Place a check mark next to the item.
        item1.Checked = True
        item1.SubItems.Add("1")
        item1.SubItems.Add("2")
        item1.SubItems.Add("3")
        Dim item2 As New ListViewItem("item2", 1)
        item2.SubItems.Add("4")
        item2.SubItems.Add("5")
        item2.SubItems.Add("6")
        Dim item3 As New ListViewItem("item3", 0)
        ' Place a check mark next to the item.
        item3.Checked = True
        item3.SubItems.Add("7")
        item3.SubItems.Add("8")
        item3.SubItems.Add("9")

        ' Create columns for the items and subitems. // Width of -2 indicates auto-size.
        listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left)
        listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left)
        listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left)
        listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center)

        'Add the items to the ListView.
        listView1.Items.AddRange(New ListViewItem() {item1, item2, item3})
    End Sub

    Private Sub InitializeComponent()
        Me.components = New Container()
        Dim myListViewResizePolicy1 As New MyListViewResizePolicy()
        Me.gcResize1 = New Components.GcResize(Me.components)
        Me.listView1 = New ListView()
        DirectCast(Me.gcResize1, ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        ' 
        ' gcResize1
        ' 
        Me.gcResize1.ResizePolicies.Add(myListViewResizePolicy1)
        Me.gcResize1.Target = Me
        ' 
        ' listView1
        ' 
        Me.listView1.CheckBoxes = True
        Me.listView1.Location = New Point(15, 26)
        Me.listView1.Name = "listView1"
        Me.listView1.Size = New Size(229, 185)
        Me.listView1.TabIndex = 0
        Me.listView1.UseCompatibleStateImageBehavior = False
        ' 
        ' GcResize
        ' 
        Me.ClientSize = New Size(284, 261)
        Me.Controls.Add(Me.listView1)
        Me.Name = "GcResizeResizePolicyDemo"
        DirectCast(Me.gcResize1, ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub
End Class

Public Class MyListViewResizePolicy
    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
継承階層

System.Object
   GrapeCity.Win.Components.ResizePolicy
      GrapeCity.Win.Components.ComboBoxResizePolicy
      GrapeCity.Win.Components.DataGridViewResizePolicy
      GrapeCity.Win.Components.GcAccordionContainerResizePolicy
      GrapeCity.Win.Components.GcBarCodeResizePolicy
      GrapeCity.Win.Components.GcCalculatorResizePolicy
      GrapeCity.Win.Components.GcCheckBoxResizePolicy
      GrapeCity.Win.Components.GcCheckedGroupBoxResizePolicy
      GrapeCity.Win.Components.GcDropDownButtonBaseResizePolicy
      GrapeCity.Win.Components.GcHeadingContainerResizePolicy
      GrapeCity.Win.Components.GcRadioButtonResizePolicy
      GrapeCity.Win.Components.GcRadioGroupBoxResizePolicy
      GrapeCity.Win.Components.GcShapeButtonResizePolicy
      GrapeCity.Win.Components.GcTabBaseResizePolicy
      GrapeCity.Win.Components.ListBoxResizePolicy
      GrapeCity.Win.Components.ListViewResizePolicy
      GrapeCity.Win.Components.MonthCalendarResizePolicy
      GrapeCity.Win.Components.NoResizeFontResizePolicy
      GrapeCity.Win.Components.PictureBoxResizePolicy
      GrapeCity.Win.Components.PlusPakPickerBaseResizePolicy
      GrapeCity.Win.Components.ResizeSupportControlResizePolicy
      GrapeCity.Win.Components.ScrollableControlResizePolicy
      GrapeCity.Win.Components.TabControlResizePolicy
      GrapeCity.Win.Components.ToolStripResizePolicy
      GrapeCity.Win.Components.TreeViewResizePolicy

プラットフォーム

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

参照

ResizePolicy メンバ
GrapeCity.Win.Components 名前空間
ControlResizing イベント
ControlResizing イベント

Send Feedback