We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

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.
Live Chat Icon For mobile
Up arrow icon