PowerTools SPREAD for Windows Forms 8.0J
GetPreferredSize メソッド (ISubEditor)


サブエディタコントロールのためにセルの優先サイズ(必要な最大サイズ)を取得します。
構文
'Declaration
 
Function GetPreferredSize() As Size
'使用法
 
Dim instance As ISubEditor
Dim value As Size
 
value = instance.GetPreferredSize()
Size GetPreferredSize()

戻り値の型

サイズを含む Size オブジェクト
次のサンプルコードは、メソッドとイベントの使用方法を説明するため、ISubEditorクラスをサブクラス化し、スプレッドシート内の最初のセルのカスタムサブエディタを作成しています。
public class mySubEd : Form, FarPoint.Win.Spread.CellType.ISubEditor
{
public event EventHandler ValueChanged;
public event EventHandler CloseUp;
private TextBox txt = null;
private Button BtnOk = null;
private Button BtnCancel = null;

public mySubEd()
{
      FormBorderStyle = FormBorderStyle.FixedSingle;
      MaximizeBox = false;
      MinimizeBox = false;
      ControlBox = false;
      txt = new TextBox();
      BtnOk = new Button();
      BtnCancel = new Button();
      txt.Location = new Point(0, 0);
      txt.Size = new Size(110, 200);
      txt.ForeColor = Color.Red;
      BtnOk.Location = new Point(3, 75);
      BtnOk.Size = new Size(50, 25);
      BtnOk.Text = "OK";
      BtnOk.ForeColor = Color.Red;
      BtnCancel.Location = new Point(57, 75);
      BtnCancel.Size = new Size(50, 25);
      BtnCancel.Text = "Cancel";
      BtnCancel.ForeColor = Color.Red;
      Controls.Add(txt);
      Controls.Add(BtnOk);
      Controls.Add(BtnCancel);
      Text = "Editor";
      BtnOk.Click += new EventHandler(OK_Clicked);
      BtnCancel.Click += new EventHandler(Cancel_Clicked);
      txt.TextChanged += new EventHandler(txt_TextChanged);
}

private void OK_Clicked(object sender, EventArgs e)
{
      if (ValueChanged != null)
            ValueChanged(this, EventArgs.Empty);
      if (CloseUp != null)
            CloseUp(this, EventArgs.Empty);
}

private void Cancel_Clicked(object sender, EventArgs e)
{
      if (CloseUp != null)
            CloseUp(this, EventArgs.Empty);
}

private void txt_TextChanged(object sender, EventArgs e)
{
      Text = txt.Text;
}

public Point GetLocation(Rectangle rect)
{
      Point pt = new Point(0);
      Size sz = GetPreferredSize();
      pt.Y = (Screen.PrimaryScreen.WorkingArea.Height/2) - (sz.Height/2);
      pt.X = (Screen.PrimaryScreen.WorkingArea.Width/2) - (sz.Width/2);
return pt;
}
public Control GetSubEditorControl()
{
      return this;
}
public object GetValue()
{
      return txt.Text;
}
public void SetValue(object value)
{
      value = txt.Text;
}
public Size GetPreferredSize()
{
      return new Size(115, 130);
}
}

private void Form1_Load(object sender, System.EventArgs e)
{
      FarPoint.Win.Spread.CellType.TextCellType t = new FarPoint.Win.Spread.CellType.TextCellType();
      t.SubEditor = new mySubEd();
      fpSpread1.ActiveSheet.Cells[0, 0].CellType = t;
}
Public Class mySubEd
Inherits Form
Implements FarPoint.Win.Spread.CellType.ISubEditor

Public Event CloseUp(ByVal sender As Object, ByVal e As EventArgs) Implements FarPoint.Win.Spread.CellType.ISubEditor.CloseUp
Public Event ValueChanged(ByVal sender As Object, ByVal e As EventArgs) Implements FarPoint.Win.Spread.CellType.ISubEditor.ValueChanged
Private BtnOk As Button = Nothing
Private BtnCancel As Button = Nothing
Private txt As TextBox = Nothing

Public Sub New()
      FormBorderStyle = FormBorderStyle.FixedSingle
      MaximizeBox = False
      MinimizeBox = False
      ControlBox = False
      txt = New TextBox()
      BtnOk = New Button()
      BtnCancel = New Button()
      txt.Location = New Point(0, 0)
      txt.Size = New Size(110, 200)
      txt.ForeColor = Color.Red
      BtnOk.Location = New Point(3, 75)
      BtnOk.Size = New Size(50, 25)
      BtnOk.Text = "OK"
      BtnOk.ForeColor = Color.Red
      BtnCancel.Location = New Point(57, 75)
      BtnCancel.Size = New Size(50, 25)
      BtnCancel.Text = "Cancel"
      BtnCancel.ForeColor = Color.Red
      Controls.Add(txt)
      Controls.Add(BtnOk)
      Controls.Add(BtnCancel)
      Text = "Editor"
      AddHandler BtnOk.Click, AddressOf OK_Clicked
      AddHandler BtnCancel.Click, AddressOf Close_Clicked
      AddHandler txt.TextChanged, AddressOf txt_TextChanged
End Sub

Private Sub OK_Clicked(ByVal sender As Object, ByVal e As EventArgs)
      RaiseEvent ValueChanged(Me, EventArgs.Empty)
      RaiseEvent CloseUp(Me, EventArgs.Empty)
End Sub

Private Sub Close_Clicked(ByVal sender As Object, ByVal e As EventArgs)
      RaiseEvent CloseUp(Me, EventArgs.Empty)
End Sub

Private Sub txt_TextChanged(ByVal sender As Object, ByVal e As EventArgs)
      Text = txt.Text
End Sub

Public Function GetLocation(ByVal rect As Rectangle) As Point Implements FarPoint.Win.Spread.CellType.ISubEditor.GetLocation
      Dim pt As New Point(0)
      Dim sz As Size = GetPreferredSize()
      pt.Y = (Screen.PrimaryScreen.WorkingArea.Height / 2) - (sz.Height / 2)
      pt.X = (Screen.PrimaryScreen.WorkingArea.Width / 2) - (sz.Width / 2)
      Return pt
End Function

Public Function GetPreferredSize() As Size Implements FarPoint.Win.Spread.CellType.ISubEditor.GetPreferredSize
      Return New Size(115, 130)
End Function

Public Function GetSubEditorControl() As Control Implements FarPoint.Win.Spread.CellType.ISubEditor.GetSubEditorControl
      Return Me
End Function

Public Function GetValue() As Object Implements FarPoint.Win.Spread.CellType.ISubEditor.GetValue
      Return txt.Text
End Function

Public Sub SetValue(ByVal value As Object) Implements FarPoint.Win.Spread.CellType.ISubEditor.SetValue
      value = txt.Text
End Sub
End Class

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Dim t As New FarPoint.Win.Spread.CellType.TextCellType()
      t.SubEditor = New mySubEd()
      FpSpread1.ActiveSheet.Cells(0, 0).CellType = t
End Sub
参照

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

 

 


© 2004-2015, GrapeCity inc. All rights reserved.