Version

Save(Stream,PropertyCategories) Method

Saves a layout to a stream, using the specified property categories.
Syntax
'Declaration
 
Public Overloads Sub Save( _
   ByVal stream As Stream, _
   ByVal propertyCategories As PropertyCategories _
) 
public void Save( 
   Stream stream,
   PropertyCategories propertyCategories
)

Parameters

stream
The stream to write to.
propertyCategories
Identifies which property categories to save.
Remarks
The stream to write to.Identifies which property categories to save.

Invoking this method saves a layout to a stream. The stream can be used to save the Layout data to different locations, such as a file on disk, an Internet location or to memory.

Invoke the Load method to restore the saved layout.

When specifying 256 (PropCatGeneral), the following property settings for the UltraGridLayout object are saved:

  • AddNewBox
  • AlphaBlendEnabled
  • BorderStyle
  • BorderStyleCaption
  • Caption
  • Enabled
  • EstimatedRows
  • Font
  • InterBandSpacing
  • MaxColScrollRegions
  • MaxRowScrollRegions
  • Override
  • RowConnectorColor
  • RowConnectorStyle
  • ScrollBars
  • TabNavigation
  • TagVariant
  • ViewStyle
  • ViewStyleBand

Multiple Layout categories can be saved by combining them using logical Or.

The Clone and CopyFrom methods can be invoked to make a duplicate of a layout.

Example
Following code shows you how to save and load the saved layout. You can save the layout of an UltraGrid to a stream and later load it to the same UltraGrid or a different UltraGrid. Following code sample contains two button handlers. One has the code to save the layout to a file and the other one has the code to load the layout from a file.

Imports Infragistics.Shared
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinGrid

  Private LAYOUT_FILE_PATH As String = "c:\\test.layout"

  Private Sub Button90_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button90.Click

      ' Following code saves the ultraGrid1's layout to a file.
      Dim fs As System.IO.FileStream = Nothing

      Try
          ' Open a new file to save the layout to.
          fs = New System.IO.FileStream(LAYOUT_FILE_PATH, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None)
      Catch exc As Exception
          MessageBox.Show(Me, "Unable to create a new file " & LAYOUT_FILE_PATH & " for saving the layout. " & exc.Message, "Unable to create file", MessageBoxButtons.OK, MessageBoxIcon.Error)
          Return
      End Try

      ' Save the layout to the file.
      Me.UltraGrid1.DisplayLayout.Save(fs, PropertyCategories.All)

      ' Close the file.
      fs.Close()

  End Sub

  Private Sub Button91_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button91.Click

      ' Following code loads the saved layout from a file.
      Dim fs As System.IO.FileStream = Nothing

      Try
          ' Open the file where the layout has been saved before.
          fs = New System.IO.FileStream(LAYOUT_FILE_PATH, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)
      Catch exc As Exception
          MessageBox.Show(Me, LAYOUT_FILE_PATH & " file not found. " & exc.Message, "Unable to open file", MessageBoxButtons.OK, MessageBoxIcon.Error)
          Return
      End Try

      ' Load the layout from the input stream by calling Load method. It is very important that you reset the
      ' Position of the file stream to where the layout data begins in case the file stream has
      ' been read from previously.
      fs.Position = 0
      Me.UltraGrid1.DisplayLayout.Load(fs, PropertyCategories.All)

      ' Close the file
      fs.Close()

  End Sub
using Infragistics.Shared;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
using System.Diagnostics;

private string LAYOUT_FILE_PATH = "c:\\test.layout";

private void button90_Click(object sender, System.EventArgs e)
{
	// Following code saves the ultraGrid1's layout to a file.

	System.IO.FileStream fs = null;
	
	try
	{
		// Open a new file to save the layout to.
		fs = new System.IO.FileStream( LAYOUT_FILE_PATH, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None );
	}
	catch ( Exception exc )
	{
		MessageBox.Show( this, "Unable to create a new file " + LAYOUT_FILE_PATH + " for saving the layout. " + exc.Message, "Unable to create file", MessageBoxButtons.OK, MessageBoxIcon.Error );
		return;
	}

	// Save the layout to the file.
	this.ultraGrid1.DisplayLayout.Save( fs, PropertyCategories.All );

	// Close the file.
	fs.Close( );

}

private void button91_Click(object sender, System.EventArgs e)
{
	// Following code loads the saved layout from a file.

	System.IO.FileStream fs = null;
	
	try
	{
		// Open the file where the layout has been saved before.
		fs = new System.IO.FileStream( LAYOUT_FILE_PATH, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read );
	}
	catch ( Exception exc )
	{
		MessageBox.Show( this, LAYOUT_FILE_PATH + " file not found. " + exc.Message, "Unable to open file", MessageBoxButtons.OK, MessageBoxIcon.Error );
		return;
	}

	// Load the layout from the input stream by calling Load method. It is very important that you reset the
	// Position of the file stream to where the layout data begins in case the file stream has
	// been read from previously.
	fs.Position = 0;
	this.ultraGrid1.DisplayLayout.Load( fs, PropertyCategories.All );

	// Close the file
	fs.Close( );
}
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, 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

See Also