TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Naeem Khan
968
802
801k
Prolem in DataGridView using c#
Nov 11 2009 2:39 PM
Hello friends, well i have big Problem in Printing . well i have datgridview which is bind from database . in database only have date not time but when i printing my DatagridView this is showing me Date with time and i want only date not time so i dont know where is my mistak please check it and let me know.... using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Text; using System.Windows.Forms; using System.Drawing; namespace DataGridViewTestApplication { public partial class Form1 : Form { #region Member Variables const string strConnectionString = "data source=KHAN;user id=sa;password=.;Initial Catalog=apollohospital;"; StringFormat strFormat; //Used to format the grid rows. ArrayList arrColumnLefts = new ArrayList();//Used to save left coordinates of columns ArrayList arrColumnWidths = new ArrayList();//Used to save column widths int iCellHeight = 0; //Used to get/set the datagridview cell height int iTotalWidth = 0; // int iRow = 0;//Used as counter bool bFirstPage = false; //Used to check whether we are printing first page bool bNewPage = false;// Used to check whether we are printing a new page int iHeaderHeight = 0; //Used for the header height #endregion public Form1() { InitializeComponent(); } #region Get Customer Details Button Click Event ///
/// Handles the customer details button click ///
///
///
private void btnCustomerDetails_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; SqlConnection sqlConnection = null; SqlCommand sqlCommand = null; SqlDataReader sqlReader = null; try { string strQuery = "select * from dbo.charity"; sqlConnection = new SqlConnection(strConnectionString); sqlConnection.Open(); sqlCommand = new SqlCommand(strQuery, sqlConnection); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = sqlCommand; DataSet ds = new DataSet(); da.Fill(ds); dataGridView1.DataSource = ds.Tables[0]; //sqlReader = sqlCommand.ExecuteReader(); /*while (sqlReader.Read()) { object[] row = { sqlReader[0], sqlReader[1], sqlReader[2], sqlReader[3] }; dataGridView1.Rows.Add(row); }*/ } catch (Exception exc) { MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } finally { Cursor.Current = Cursors.Default; sqlConnection.Close(); if (sqlReader != null) { sqlReader.Dispose(); sqlReader = null; } if (sqlCommand != null) { sqlCommand.Dispose(); sqlCommand = null; } } } #endregion #region Print Button Click Event ///
/// Handles the print button click event ///
///
///
private void btnPrint_Click(object sender, EventArgs e) { //Open the print dialog PrintDialog printDialog = new PrintDialog(); printDialog.Document = printDocument1; printDialog.UseEXDialog = true; //Get the document if (DialogResult.OK == printDialog.ShowDialog()) { printDocument1.DocumentName = "Test Page Print"; printDocument1.Print(); } //Open the print preview dialog //PrintPreviewDialog objPPdialog = new PrintPreviewDialog(); //objPPdialog.Document = printDocument1; //objPPdialog.ShowDialog(); } #endregion #region Begin Print Event Handler ///
/// Handles the begin print event of print document ///
///
///
private void printDocument1_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e) { try { strFormat = new StringFormat(); strFormat.Alignment = StringAlignment.Near; strFormat.LineAlignment = StringAlignment.Center; strFormat.Trimming = StringTrimming.EllipsisCharacter; arrColumnLefts.Clear(); arrColumnWidths.Clear(); iCellHeight = 0; iRow = 0; bFirstPage = true; bNewPage = true; // Calculating Total Widths iTotalWidth = 0; foreach (DataGridViewColumn dgvGridCol in dataGridView1.Columns) { iTotalWidth += dgvGridCol.Width; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } #endregion #region Print Page Event ///
/// Handles the print page event of print document ///
///
///
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { try { //Set the left margin int iLeftMargin = e.MarginBounds.Left; //Set the top margin int iTopMargin = e.MarginBounds.Top; //Whether more pages have to print or not bool bMorePagesToPrint = false; int iTmpWidth = 0; //For the first page to print set the cell width and header height if (bFirstPage) { foreach (DataGridViewColumn GridCol in dataGridView1.Columns) { iTmpWidth = (int)(Math.Floor((double)((double)GridCol.Width / (double)iTotalWidth * (double)iTotalWidth * ((double)e.MarginBounds.Width / (double)iTotalWidth)))); iHeaderHeight = (int)(e.Graphics.MeasureString(GridCol.HeaderText, GridCol.InheritedStyle.Font, iTmpWidth).Height) + 11; // Save width and height of headres arrColumnLefts.Add(iLeftMargin); arrColumnWidths.Add(iTmpWidth); iLeftMargin += iTmpWidth; } } //Loop till all the grid rows not get printed while (iRow <= dataGridView1.Rows.Count - 1) { DataGridViewRow GridRow = dataGridView1.Rows[iRow]; //Set the cell height iCellHeight = GridRow.Height + 5; int iCount = 0; //Check whether the current page settings allo more rows to print if (iTopMargin + iCellHeight >= e.MarginBounds.Height + e.MarginBounds.Top) { bNewPage = true; bFirstPage = false; bMorePagesToPrint = true; break; } else { if (bNewPage) { //Draw Header e.Graphics.DrawString("Customer Summary", new Font(dataGridView1.Font, FontStyle.Bold), Brushes.Black, e.MarginBounds.Left, e.MarginBounds.Top - e.Graphics.MeasureString("Customer Summary", new Font(dataGridView1.Font, FontStyle.Bold), e.MarginBounds.Width).Height - 13); String strDate = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToShortTimeString(); //Draw Date e.Graphics.DrawString(strDate, new Font(dataGridView1.Font, FontStyle.Bold), Brushes.Black, e.MarginBounds.Left + (e.MarginBounds.Width - e.Graphics.MeasureString(strDate, new Font(dataGridView1.Font, FontStyle.Bold), e.MarginBounds.Width).Width), e.MarginBounds.Top - e.Graphics.MeasureString("Customer Summary", new Font(new Font(dataGridView1.Font, FontStyle.Bold), FontStyle.Bold), e.MarginBounds.Width).Height - 13); //Draw Columns iTopMargin = e.MarginBounds.Top; foreach (DataGridViewColumn GridCol in dataGridView1.Columns) { e.Graphics.FillRectangle(new SolidBrush(Color.LightGray), new Rectangle((int)arrColumnLefts[iCount], iTopMargin, (int)arrColumnWidths[iCount], iHeaderHeight)); e.Graphics.DrawRectangle(Pens.Black, new Rectangle((int)arrColumnLefts[iCount], iTopMargin, (int)arrColumnWidths[iCount], iHeaderHeight)); e.Graphics.DrawString(GridCol.HeaderText, GridCol.InheritedStyle.Font, new SolidBrush(GridCol.InheritedStyle.ForeColor), new RectangleF((int)arrColumnLefts[iCount], iTopMargin, (int)arrColumnWidths[iCount], iHeaderHeight), strFormat); iCount++; } bNewPage = false; iTopMargin += iHeaderHeight; } iCount = 0; //Draw Columns Contents foreach (DataGridViewCell Cel in GridRow.Cells) { if (Cel.Value != null) { e.Graphics.DrawString(Cel.Value.ToString(), Cel.InheritedStyle.Font, new SolidBrush(Cel.InheritedStyle.ForeColor), new RectangleF((int)arrColumnLefts[iCount], (float)iTopMargin, (int)arrColumnWidths[iCount], (float)iCellHeight), strFormat); } //Drawing Cells Borders e.Graphics.DrawRectangle(Pens.Black, new Rectangle((int)arrColumnLefts[iCount], iTopMargin, (int)arrColumnWidths[iCount], iCellHeight)); iCount++; } } iRow++; iTopMargin += iCellHeight; } //If more lines exist, print another page. if (bMorePagesToPrint) e.HasMorePages = true; else e.HasMorePages = false; } catch (Exception exc) { MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } #endregion private void btnPrintpreview_Click(object sender, EventArgs e) { PrintPreviewDialog printpDialog = new PrintPreviewDialog(); printpDialog.Document = printDocument1; printpDialog.ShowDialog(); } } } thanks in Advance
Reply
Answers (
2
)
Problem in DataGridView using c#
How to count specific letterr in a string?