printing Static cells

I have a gridcontrol that has cells with pushbutton. When i am printing this directly i am getting those cells in print preview. But i am copying the original grid to a printgrid. When i do this, for the first row (only for the first row) the push button doesnt appear in the print preview, but when it is printed, it appears correctly.How do i solve this problem. I have given a sample code showing this problem. using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using Syncfusion.Windows.Forms.Grid; namespace WindowsApplication1 { /// /// Summary description for Form1. /// public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private Syncfusion.Windows.Forms.Grid.GridControl gridControl1; /// /// Required designer variable. /// private System.ComponentModel.Container components = null; public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // gridControl1.RowCount = 2; gridControl1.ColCount = 2; } /// /// Clean up any resources being used. /// protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.gridControl1 = new Syncfusion.Windows.Forms.Grid.GridControl(); ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).BeginInit(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(576, 376); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(88, 32); this.button1.TabIndex = 0; this.button1.Text = "Print Preview"; this.button1.Click += new System.EventHandler(this.button1_Click); // // gridControl1 // this.gridControl1.Location = new System.Drawing.Point(40, 24); this.gridControl1.Name = "gridControl1"; this.gridControl1.Size = new System.Drawing.Size(736, 352); this.gridControl1.TabIndex = 1; this.gridControl1.Text = "gridControl1"; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(880, 429); this.Controls.Add(this.gridControl1); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.gridControl1)).EndInit(); this.ResumeLayout(false); } #endregion /// /// The main entry point for the application. /// [STAThread] static void Main() { Application.Run(new Form1()); } private void Form1_Load(object sender, System.EventArgs e) { gridControl1.BaseStylesMap["Standard"].StyleInfo.Font.Unit=GraphicsUnit.World; gridControl1[1,1].CellType="PushButton"; gridControl1[1,1].Description = "Show"; gridControl1[1,2].Font.Facename=" courier new"; gridControl1[1,2].Font.Size=10; gridControl1[1,2].CellValue = "This is going to be (This text is to increase the width)a multiple line in the grid "+System.Environment.NewLine+ "This is the second line in the cell"+System.Environment.NewLine+ "Check this line is printed correctly"; gridControl1[2,1].CellType="PushButton"; gridControl1[2,1].Description = "Show"; gridControl1.ColWidths.ResizeToFit(Syncfusion.Windows.Forms.Grid.GridRangeInfo.Col(2),Syncfusion.Windows.Forms.Grid.GridResizeToFitOptions.IncludeHeaders); gridControl1.RowHeights.ResizeToFit(Syncfusion.Windows.Forms.Grid.GridRangeInfo.Row(1),Syncfusion.Windows.Forms.Grid.GridResizeToFitOptions.IncludeHeaders); } private System.Drawing.Printing.PrintDocument GetDoc() { GridControl printGrid=new GridControl(); //printGrid.BaseStylesMap["Standard"].StyleInfo.Font.Unit=GraphicsUnit.Point; printGrid.RowCount=gridControl1.RowCount; printGrid.ColCount=gridControl1.ColCount; for( int row=0; row<=gridControl1.RowCount; row++) { printGrid.RowHeights[row]=gridControl1.RowHeights[row]; for( int col=0; col<=gridControl1.ColCount; col++) { // Copy the visible features of the cell to the print cell GridStyleInfo printCell = printGrid[row,col]; GridStyleInfo cell = gridControl1[row,col]; printCell.Text = cell.Text; printCell.BackColor = cell.BackColor; printCell.CellType = cell.CellType; printCell.TextColor = cell.TextColor; printCell.Font = cell.Font; printCell.Description=cell.Description; } } printGrid.ColWidths.ResizeToFit(Syncfusion.Windows.Forms.Grid.GridRangeInfo.Col(2),Syncfusion.Windows.Forms.Grid.GridResizeToFitOptions.IncludeHeaders); Syncfusion.Windows.Forms.Grid.GridPrintDocument doc = new Syncfusion.Windows.Forms.Grid.GridPrintDocument(printGrid, true); return doc; } private void button1_Click(object sender, System.EventArgs e) { System.Drawing.Printing.PrintDocument printDoc = GetDoc(); System.Windows.Forms.PrintPreviewDialog pdlg = new PrintPreviewDialog(); pdlg.Document = printDoc; pdlg.ShowDialog(); } } }

1 Reply

AD Administrator Syncfusion Team March 14, 2005 11:32 AM UTC

The grid has to be parented to something. GridControl printGrid=new GridControl(); printGrid.Visible = false; //this.Controls.Add(printGrid); printGrid.Parent = this;

Loader.
Up arrow icon