Spread Windows Forms 12.0 Product Documentation
GetPreferredSize Method (ISubEditor)
Example 


FarPoint.Win.Spread Assembly > FarPoint.Win.Spread.CellType Namespace > ISubEditor Interface : GetPreferredSize Method
Gets the preferred (maximum required) size of the cell for the subeditor control.
Syntax
'Declaration
 
Function GetPreferredSize() As Size
'Usage
 
Dim instance As ISubEditor
Dim value As Size
 
value = instance.GetPreferredSize()
Size GetPreferredSize()

Return Value

Size object containing the size
Example
This example subclasses the ISubEditor class and creates a custom subeditor for the first cell in the spreadsheet to illustrate the use of the methods and events.
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
See Also

Reference

ISubEditor Interface
ISubEditor Members