MESCIUS SPREAD for Windows Forms 17.0J
GetPreferredSize メソッド (IRenderer)

セルを描画するグラフィックインタフェース
優先サイズまたは必要な最大サイズ。
レンダラーコントロールの外観設定
レンダラーコントロールの名前を含むオブジェクト。
レンダラーコントロールの表示倍率を表す数値
レンダラーコントロールのためにセルの優先サイズ(必要な最大サイズ)を取得します。
構文
'Declaration
 
Function GetPreferredSize( _
   ByVal g As Graphics, _
   ByVal size As Size, _
   ByVal appearance As Appearance, _
   ByVal value As Object, _
   ByVal zoomFactor As Single _
) As Size

パラメータ

g
セルを描画するグラフィックインタフェース
size
優先サイズまたは必要な最大サイズ。
appearance
レンダラーコントロールの外観設定
value
レンダラーコントロールの名前を含むオブジェクト。
zoomFactor
レンダラーコントロールの表示倍率を表す数値

戻り値の型

レンダラ コントロールで使用されるセルの優先サイズ(必要な最大サイズ)を含む Size オブジェクト
解説

セルのテキストを複数行に折り返すよう設定している場合(GeneralCellTypeのWordWrapがTrueであるか、TextCellTypeのMultilineまたはWordWrapあるいはその両方がTrueの場合)、このメソッドは、セル内のすべてのテキストを表示するのに最適な高さを、現在の行の高さで返します。テキスト型セルまたはテキストを含むヘッダセルの場合は、テキスト型セルまたはヘッダセルのWordWrapプロパティをFalseに設定して、ワードラップを必ず無効にしてください。

zoomFactorパラメータの限度については、シートのZoomFactorプロパティを参照してください。

次のサンプルコードは、メソッドとイベントの使用方法を説明するため、IRendererクラスをサブクラス化し、スプレッドシート内の最初のセルのカスタムレンダラを作成しています。
public static CheckBox ck = new CheckBox();

class myRenderer : FarPoint.Win.Spread.CellType.IRenderer
{
  public bool CanOverflow()
  {
      return true;
  }
  public bool CanBeOverflown()
  {
      return true;
  }
  public Size GetPreferredSize(Graphics g, Size s, FarPoint.Win.Spread.Appearance appr, object value, float zoom)
 {
      s = new Size(50, 50);
      return s;
  }
  public void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appr, object value, bool issel, bool islocked,
float zoom) 
  {
      string s;
      ck.CheckState = CheckState.Checked;
      s = ck.CheckState.ToString();
      Font f = new Font("MS Sans Serif", 10);
      appr.BackColor = Color.Red;
      appr.ForeColor = Color.Yellow;
      appr.Font = f;
      Brush b, b1;
      b = new SolidBrush(appr.BackColor);
      b1 = new SolidBrush(appr.ForeColor);
      g.FillRectangle(b, r);
      g.DrawString(s, appr.Font, b1, r);
      b.Dispose();
      b1.Dispose();
      }
}

private void Form1_Load(object sender, System.EventArgs e)
{
      fpSpread1.ActiveSheet.Cells[0, 0].Renderer = new myRenderer();
}
Shared ck As New CheckBox()

Public Class myRenderer
Implements FarPoint.Win.Spread.CellType.IRenderer

Public Function CanBeOverflown() As Boolean Implements FarPoint.Win.Spread.CellType.IRenderer.CanBeOverflown
      Return True
End Function

Public Function CanOverflow() As Boolean Implements FarPoint.Win.Spread.CellType.IRenderer.CanOverflow
      Return True
End Function

Public Function GetPreferredSize(ByVal g As Graphics, ByVal s As Size, ByVal appr As FarPoint.Win.Spread.Appearance, ByVal
value As Object, ByVal zoom As Single) As Size Implements FarPoint.Win.Spread.CellType.IRenderer.GetPreferredSize
      s = New Size(50, 50)
      Return s
End Function

Public Sub PaintCell(ByVal g As Graphics, ByVal r As Rectangle, ByVal appr As FarPoint.Win.Spread.Appearance, ByVal Value
As Object, ByVal issel As Boolean, ByVal islocked As Boolean, ByVal zoom As Single) Implements FarPoint.Win.Spread.CellType.IRenderer.PaintCell
      Dim s As String
      ck.CheckState = CheckState.Checked
      s = ck.CheckState.ToString()
      Dim f As New Font("MS Sans Serif", 10)
      appr.BackColor = Color.Red
      appr.ForeColor = Color.Yellow
      appr.Font = f
      Dim b, b1 As Brush
      b = New SolidBrush(appr.BackColor)
      b1 = New SolidBrush(appr.ForeColor)
      g.FillRectangle(b, r)
      g.DrawString(s, appr.Font, b1, r.X, r.Y)
      b.Dispose()
      b1.Dispose()
End Sub

End Class

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      FpSpread1.ActiveSheet.Cells(0, 0).Renderer = New myRenderer()
End Sub
参照

IRenderer インタフェース
IRenderer メンバ

 

 


© MESCIUS inc. All rights reserved.