FlexGrid for WinForms
サイズ変更
> サイズ変更

列幅の設定

FlexGrid には、グリッドの列幅を設定するために ColumnCollection クラスの DefaultSize プロパティがあります。Column クラスの Width プロパティを設定することで、特定の列の幅を指定することもできます。 Width プロパティのデフォルト値は -1 です。これは、列が DefaultSize プロパティによって指定される幅になることを意味しています。設計時に C1FlexGrid 列エディタで Width プロパティを使用することもできます。 列エディタの詳細については、「エディタ」を参照してください。

以下のコードを使用して、WinForms FlexGrid の列のデフォルトの幅を設定します。

// すべての列のデフォルト幅を設定します
c1FlexGrid1.Cols.DefaultSize = 110;

// 最初の列の幅を設定します
c1FlexGrid1.Cols[1].Width = 30;                    
 ' すべての列のデフォルト幅を設定します
 c1FlexGrid1.Cols.DefaultSize = 110

 ' 最初の列の幅を設定します
 c1FlexGrid1.Cols(1).Width = 30
                                

列幅の自動調整

テキスト長に基づいて列の幅を調整するために、FlexGrid には AutoSizeCol() メソッドと AutoSizeCols() メソッドがあります。AutoSizeCol() メソッドは、指定された列の幅を自動的に調整します。一方、AutoSizeCols() メソッドはセル範囲に対して使用されます。

以下のコードは、WinForms FlexGrid でテキスト長に基づいて列の幅を自動的に調整する方法を示しています。

// テキストの長さに応じて最初の列の幅を自動調整します 
c1FlexGrid1.AutoSizeCol(1);
   
// 列の幅を1番目から4番目まで自動調整します
c1FlexGrid1.AutoSizeCols(1, 4, 2);

// すべての列の幅を自動調整します 
// c1FlexGrid1.AutoSizeCols();
' テキストの長さに応じて最初の列の幅を自動調整します 
c1FlexGrid1.AutoSizeCol(1)

' 列の幅を1番目から4番目まで自動調整します
c1FlexGrid1.AutoSizeCols(1, 4, 2)

' すべての列の幅を自動調整します 
' c1FlexGrid1.AutoSizeCols()
                        

最小/最大列幅の設定

FlexGrid では、ColumnCollection の MinSize プロパティと MaxSize プロパティを使用して、列の幅の範囲を設定できます。この機能は、AllowResizing プロパティに true を設定した場合、または AutoSizeCol または AutoSizeCols メソッドを使用する場合などに特に便利です。 

以下のコードを使用して、WinForms FlexGrid で列の幅の範囲を指定します。

 // 列コレクションの最小幅を設定します
 c1FlexGrid1.Cols.MinSize = 20;
    
 // 列コレクションの最大幅を設定します 
 c1FlexGrid1.Cols.MaxSize = 60;    
 ' 列コレクションの最小幅を設定します
 c1FlexGrid1.Cols.MinSize = 20

 ' 列コレクションの最大幅を設定します 
 c1FlexGrid1.Cols.MaxSize = 60    

スターサイズ

スターサイズは、グリッドのサイズが変更されてもレイアウトが変わらないように、グリッドの列幅の比率を維持したまま列をサイズ変更して、利用可能なスペースの全体を使用することです。たとえば、スターサイズが "*"、"3*"、"2*"、"*"、および "*" で指定された 5 列のグリッドがあるとします。この場合、先頭、4 番目、および 5 番目の列は常に同じ幅になります。また、2 番目の列は先頭の列の 3 倍、3 番目の列は 2 倍の幅になります。

スターサイズ

列のスターサイズを指定するために、FlexGrid には、Column クラスの StarWidth プロパティがあります。 幅が狭くなりすぎたり、広くなりすぎることを防ぐには、MinWidth プロパティと MaxWidth プロパティを設定できます。これらのプロパティは、C1FlexGrid 列エディタからも使用できます。列エディタの詳細については、「エディタ」を参照してください。

以下のコードを使用して、WinForms FlexGrid の列でスターサイズ、すなわち比率を維持したサイズ変更を行います。 

//列のスターサイズを設定します
c1FlexGrid1.Cols[1].StarWidth = "*";
c1FlexGrid1.Cols[2].StarWidth = "3*";
c1FlexGrid1.Cols[3].StarWidth = "2*";
c1FlexGrid1.Cols[4].StarWidth = "*";
c1FlexGrid1.Cols[5].StarWidth = "*";

// 列が狭くなりすぎないように、MinWidthプロパティを設定します
c1FlexGrid1.Cols[1].MinWidth = 50;                    
' 列のスターサイズを設定します
c1FlexGrid1.Cols(1).StarWidth = "*"
c1FlexGrid1.Cols(2).StarWidth = "3*"
c1FlexGrid1.Cols(3).StarWidth = "2*"
c1FlexGrid1.Cols(4).StarWidth = "*"
c1FlexGrid1.Cols(5).StarWidth = "*"

' 列が狭くなりすぎないように、MinWidthプロパティを設定します
c1FlexGrid1.Cols(1).MinWidth = 50        
関連トピック